So is it really a bad thing that Perl let's someone get their project done poorly instead of not at all?
It depends what their code's doing - if they're automating some admin task then sure, it's better to get some code written. But if it's for something that multiple programmers are/will be working on I'd say yes, inexperienced Perling can be a very bad thing. Also because you or I might have to maintain it:-)
That said, I learned to code in Perl and I'm sure I wrote more than my fair share of unmaintainable, unintelligible code (and, I'm sure, still do!)
You're so right, though, that incomprehensible programs are easy to write in any language.
Perl is a typical example of a jack of all trades, master of none
The full quote being:
"Jack of all trades, master of none,
though ofttimes better than master of one."ref
Although I get what you mean. The trouble is that the thing I love about Perl - its expressiveness - is also its biggest weakness. In the hands of an inexperienced programmer Perl can be a nightmare. But in the hands of a master, a Perl solution to a problem can be brief and beautiful
This is actually a few days old; it did the rounds on the Apple rumour sites and was debunked: it's a blacklist that can prevent applications using Core Location to determine a users' position (so if an app is abusing it & logging everywhere a user goes, they can be prevented from doing that while still allowing the app to function).
The hint was in the filename (and the library that references it): clbl - Core Location BlackList
This is why I was asking... here it's the same high price for iTunes Plus and regular songs... £0.79 - roughly $1.57. Aparently we love to pay loads for music:-)
Or Ferengi having a few for rain, but none for "crunchy".
Your point certainly seems valid but either I'm seriously uneducated about languages (which is entirely possible as I'm seriously uneducated about languages) or did you just use a fictional species with a fictional language from Star Trek to make a point about real language use? I know it's slashdot and all but...:-P
No, they are only per-run - although just as in C++ you can attach a profiler and optimise in your code... I'm not a fan of Java for client apps or apps which restart frequently, though
That is only true if you compile it, effectively loosing all the other benefits you claim.
I saw this higher up in the comments and shrugged it off. But now I have to ask - huh?! Java is a compiled language. (are you confusing it with javascript, which is completely different and only shares the name?). Java's JIT works automatically, profiling bytecode as it executes and when it's ready, translating it into x86 instructions. By doing this it can do the sort of optimisations that C++ is incapable of doing - it can reorder an if condition or do some incredibly aggressive inlining (it'll even inline 3 method calls deep when its profiling indicates there'd be a performance advantage).
Trouble shooting any large Java application is a nightmare
Troubleshooting a badly written application is always a nightmare, troubleshooting a large application can be a pain. You can do all sorts of nice things with debuggers, too, to figure out what's going on - and Java's definitely easier to debug than C or Perl
At work I write Java most of the day most days so take this with however much salt you do/don't want...
The issues I have with Java nowadays are memory (not using too much, but enabling the JVM to take advantage of the physical memory in the machine and not complain that it's out of memory when it's only used 30% of the RAM available. It's not such a huge problem but it's my annoyance:)
The JIT compiler is very impressive - it keeps basic profiling data when running the code as bytecode & compiles to native after 1000 executions of some code (that's configurable). This allows it to do some really cool jump rewriting, inlining, unravelling or simply optimising getters out of existance. There's a pretty cool debug jvm you can use to show the x86 asm generated from a class & if you call an empty method in a for loop the jit inlines it, then throws away a loop that doesn't change the program state. (spot the compiler geek)
I completely agree with you in this respect. I love Java, but the only parts I really use are java.util for the Collections, java.util.concurrent, (java.net and java.io primitives obviously) and java.lang.reflect - Java's a great language with a fantastic JIT. I don't care for the extended libraries Sun ships with it.
Speaking to your standard library point, I don't really see why it IS so large - it's largely implemented in pure Java so why not just let people choose: put most of the standard library out into separate projects and compete directly against apache's libraries (which, I suspect, would have made the Sun developers a lot better at writing simple easily understood apis).
I also find Sun's attitude towards backwards compatibility annoying - I want them to trip out the crap that people shouldn't be using anymore (if necessary, keep it in the distribution but only allow it for code compiled against the earlier libraries - although if you're running jdk1.2 code and nobody wants to remove the use of classes which shouldn't be used then you've probably got bigger problems - or are still running a 1.2 jvm)
Yeah, seriously, thank $deity for prior art
Global symbol "$deity" requires explicit package name at comment line 2.
Execution of comment aborted due to compilation errors.
If only these people had typed "use strict;" before their religious texts:-)
With more expensive routers/firewalls they could probably enforce SMTP traffic on port 25. That said they're not going for a perfect solution - you can already bypass using a VPN or proxy.
It's interesting, though, because we're overcomplicating our solutions: wikipedia's article says you can bypass their restrictions in various ways - such as escaping characters.
The solution I'd use were I them would be to give a password to everyone who wanted access to the internet & have harsh penalties for anyone caught accessing illicit content (open to abuse by stealing someone's password, yes, but as a general rule...).
This is going to sound like flamebait, but from that video it looks kinda like someone at Intel's consumer division saw one of the NAS devices in their server room.
I know what you mean - but I present to you the balancer that makes the flash ad ok: the best software promotion song ever:-P the software's a bit pricey, though.
Insightful? What? In the old days of the web the whole javascript / dynamic html nonsense was a mess. But modern javascript/html interaction is much more sensible.
It might surprise you to learn this but javascript is actually quite a nice language -- I'm a Real Programmer(TM) and I've been dabbling with a bit of javascript recently for UIs to our tooling -- and the only thing dragging it down is DOM's uglyness (and, frankly, life's too short to try to learn the stupid inconsistencies between Firefox, Safari and IE). However there are solutions: a library called jQuery makes working with the browser rediculously easy: it abstracts away various inconsistencies for you (and also makes the syntax nice and elegant/compact).
A nice example is setting CSS properties - with jQuery you simply use: $("p.showable").css("font-weight", "bold").show("slow"); this code selects all paragraphs with the "showable" class, makes their contents bold and fades them into view (if they're not already visible)
Debugging isn't as bad as you'd think, either thanks to Firebug. And AJAXy things can make a page much more useful - we update a log viewer based on the restrictions specified (eg. from machine X,Y or Z, from application B, log level >= INFO) which makes it at least as useful as ssh+tail:-)
Then we should fight it the only way an advertiser will understand - by making the return on investment approach 0 for advertisers
We write an agent that sits on peoples machines. It browses around google search results for various advertiser-happy keywords in the background. Immediately their database gets very noisy and their click-through ratio drops.
Of course, if these companies had a flag to let me say 'don't bother with the ads, I use AdBlock' we could both save ourselves some cpu time and bandwidth
It seems from the article that they're forming a new ad network which site operators can opt into, so they're not altering your requested page content... I really wish they were modifying existing ad content, though - that would be a nice way to kill this dead and establish some precedent against ISPs forging data (as if it should be needed!)
They say there will be an opt-out feature but they'll try to discourage people by saying something about increased security or something. I know of one company name string that's going in my adblock list right away, though... (I'm on one of the affected ISPs)
I've yet to meet a CS grad who properly understands the difference between TCP, UDP and IP. I haven't met one who knows anything about algorithm analysis (or big O notation; I think they were all out getting a lot of Big-O's instead of studying).
It depends what their code's doing - if they're automating some admin task then sure, it's better to get some code written. But if it's for something that multiple programmers are/will be working on I'd say yes, inexperienced Perling can be a very bad thing. Also because you or I might have to maintain it :-)
That said, I learned to code in Perl and I'm sure I wrote more than my fair share of unmaintainable, unintelligible code (and, I'm sure, still do!)
You're so right, though, that incomprehensible programs are easy to write in any language.
The full quote being:
"Jack of all trades, master of none, though ofttimes better than master of one." ref
Although I get what you mean. The trouble is that the thing I love about Perl - its expressiveness - is also its biggest weakness. In the hands of an inexperienced programmer Perl can be a nightmare. But in the hands of a master, a Perl solution to a problem can be brief and beautiful
Well you're a C++ programmer so your vote on elegant OO is NULL and void* :-P
I jest, I jest.
This is actually a few days old; it did the rounds on the Apple rumour sites and was debunked: it's a blacklist that can prevent applications using Core Location to determine a users' position (so if an app is abusing it & logging everywhere a user goes, they can be prevented from doing that while still allowing the app to function).
The hint was in the filename (and the library that references it): clbl - Core Location BlackList
I've flown it and you really don't want to fly it. The staff are rude, the seats cramped and the yellow colour scheme is painful
This is why I was asking... here it's the same high price for iTunes Plus and regular songs... £0.79 - roughly $1.57. Aparently we love to pay loads for music:-)
More? Where do you live? They're the same price as normal iTunes songs here in the UK (or are you just making a general point?)
Your point certainly seems valid but either I'm seriously uneducated about languages (which is entirely possible as I'm seriously uneducated about languages) or did you just use a fictional species with a fictional language from Star Trek to make a point about real language use? I know it's slashdot and all but... :-P
Was that accidental or is that the worst physics joke ever? :-P if intentional allow me to present you with a medal!
No, they are only per-run - although just as in C++ you can attach a profiler and optimise in your code... I'm not a fan of Java for client apps or apps which restart frequently, though
I saw this higher up in the comments and shrugged it off. But now I have to ask - huh?! Java is a compiled language. (are you confusing it with javascript, which is completely different and only shares the name?). Java's JIT works automatically, profiling bytecode as it executes and when it's ready, translating it into x86 instructions. By doing this it can do the sort of optimisations that C++ is incapable of doing - it can reorder an if condition or do some incredibly aggressive inlining (it'll even inline 3 method calls deep when its profiling indicates there'd be a performance advantage).
Troubleshooting a badly written application is always a nightmare, troubleshooting a large application can be a pain. You can do all sorts of nice things with debuggers, too, to figure out what's going on - and Java's definitely easier to debug than C or Perl
At work I write Java most of the day most days so take this with however much salt you do/don't want...
The issues I have with Java nowadays are memory (not using too much, but enabling the JVM to take advantage of the physical memory in the machine and not complain that it's out of memory when it's only used 30% of the RAM available. It's not such a huge problem but it's my annoyance:)
The JIT compiler is very impressive - it keeps basic profiling data when running the code as bytecode & compiles to native after 1000 executions of some code (that's configurable). This allows it to do some really cool jump rewriting, inlining, unravelling or simply optimising getters out of existance. There's a pretty cool debug jvm you can use to show the x86 asm generated from a class & if you call an empty method in a for loop the jit inlines it, then throws away a loop that doesn't change the program state. (spot the compiler geek)
I completely agree with you in this respect. I love Java, but the only parts I really use are java.util for the Collections, java.util.concurrent, (java.net and java.io primitives obviously) and java.lang.reflect - Java's a great language with a fantastic JIT. I don't care for the extended libraries Sun ships with it.
Speaking to your standard library point, I don't really see why it IS so large - it's largely implemented in pure Java so why not just let people choose: put most of the standard library out into separate projects and compete directly against apache's libraries (which, I suspect, would have made the Sun developers a lot better at writing simple easily understood apis).
I also find Sun's attitude towards backwards compatibility annoying - I want them to trip out the crap that people shouldn't be using anymore (if necessary, keep it in the distribution but only allow it for code compiled against the earlier libraries - although if you're running jdk1.2 code and nobody wants to remove the use of classes which shouldn't be used then you've probably got bigger problems - or are still running a 1.2 jvm)
Rant over. Sleepy nowExecution of comment aborted due to compilation errors.
If only these people had typed "use strict;" before their religious texts
You know, reading the output of this gives me an idea: deeply-nested funnies printed on coffee cups.
A cunning person should get on cafepress and produce some mugs before this "What's funny about this?" dies out!
With more expensive routers/firewalls they could probably enforce SMTP traffic on port 25. That said they're not going for a perfect solution - you can already bypass using a VPN or proxy.
It's interesting, though, because we're overcomplicating our solutions: wikipedia's article says you can bypass their restrictions in various ways - such as escaping characters.
The solution I'd use were I them would be to give a password to everyone who wanted access to the internet & have harsh penalties for anyone caught accessing illicit content (open to abuse by stealing someone's password, yes, but as a general rule...).
Actually, old bean, this is the United Kingdom we're talking about in this article :-)
This is going to sound like flamebait, but from that video it looks kinda like someone at Intel's consumer division saw one of the NAS devices in their server room.
I know what you mean - but I present to you the balancer that makes the flash ad ok: the best software promotion song ever :-P the software's a bit pricey, though.
I know what you mean - I have ABP everywhere... but at work I forgot to install it and saw a Splunk ad on Sourceforge. It's pretty cool software :-)
Insightful? What? In the old days of the web the whole javascript / dynamic html nonsense was a mess. But modern javascript/html interaction is much more sensible.
It might surprise you to learn this but javascript is actually quite a nice language -- I'm a Real Programmer(TM) and I've been dabbling with a bit of javascript recently for UIs to our tooling -- and the only thing dragging it down is DOM's uglyness (and, frankly, life's too short to try to learn the stupid inconsistencies between Firefox, Safari and IE). However there are solutions: a library called jQuery makes working with the browser rediculously easy: it abstracts away various inconsistencies for you (and also makes the syntax nice and elegant/compact).
A nice example is setting CSS properties - with jQuery you simply use: $("p.showable").css("font-weight", "bold").show("slow"); this code selects all paragraphs with the "showable" class, makes their contents bold and fades them into view (if they're not already visible)
Debugging isn't as bad as you'd think, either thanks to Firebug. And AJAXy things can make a page much more useful - we update a log viewer based on the restrictions specified (eg. from machine X,Y or Z, from application B, log level >= INFO) which makes it at least as useful as ssh+tail :-)
You must be new here...
Then we should fight it the only way an advertiser will understand - by making the return on investment approach 0 for advertisers
We write an agent that sits on peoples machines. It browses around google search results for various advertiser-happy keywords in the background. Immediately their database gets very noisy and their click-through ratio drops.
Of course, if these companies had a flag to let me say 'don't bother with the ads, I use AdBlock' we could both save ourselves some cpu time and bandwidth
It seems from the article that they're forming a new ad network which site operators can opt into, so they're not altering your requested page content... I really wish they were modifying existing ad content, though - that would be a nice way to kill this dead and establish some precedent against ISPs forging data (as if it should be needed!)
They say there will be an opt-out feature but they'll try to discourage people by saying something about increased security or something. I know of one company name string that's going in my adblock list right away, though... (I'm on one of the affected ISPs)
Hello, pleased to meet you :-)