skysight-inc/HackerNews huggingface dataset:
"Part of how C++ is successful is that it retains C compatibility"

I think Objective C is a better object oriented C than C++. It's simpler, makes a syntactic distinction between message passing and "traditional" C, and has a more dynamic run time. I'm surprised no one else has brought up Objective C as a better solution to the "make C object oriented" problem.
My first impression of the quote is that any language that gains enough users will find people who complain about it.

However, I agree that his main point is more that you will never be able to design a language that is useful to a large number of people without making compromises, and with any compromise there will be at least one person for which it is not the optimal solution.

I don't want to say the relationship between elegance and popularity is strict though. There is simply a good correlation.
It looks like the only platform that had production-level ObjC library was NeXT/OS X.
I'm a systems administrator for a medium sized company. Every single time there is a security hole in flash, computers get infected with a virus. I roll out updates as soon as they're available but with enough people going to enough sites, someone gets hit.

That aside, I also can't run flash on my iphone, or my blackberry.

Javascript on the other hand is supported nativity across the board.

The advantages/disadvantages listed on the juggernaut website seem fishy to me.

1) it's not hack

2) I don't know of js crashing your browser *more* then flash

3) Any browser that supports flash supports JS

4) You can use http over any port as well

With Comet you get the added benefit (which is small or large depending on your implementation) of http caching and you remove reliance on 3rd party libraries.

Looks like I just rewrote what was previously mentioned in the articles about juggernaut
My opinion is that this definition is better than pg's. Why? Because while plenty of people are like pg in that they have their passion triggered by curiosity, I know plenty of others who have their passion triggered by other things, like feeling challenged.
Android 2.0 Screenshots
> I worked at McDonald's. It helped make me the man I am

A lot of people say this. How can you be sure you are not just kidding yourself into thinking the time you spent doing something actually quite unproductive was useful?
Oh why do browsers still make alerts modal … (#26, I'm looking at you).
Actually, the book "Design and Evolution of C++" shows Stroustrup saying "no" to quite a few features (e.g. named parameters). It would probably be more proper to say that Stroustrup didn't say "no" to enough people.
Downvoting? Is there not a valid argument to be had, or a valid position to take.

There is nothing wrong with being humanitarian, (its a bit species-centric), but we need to take a long term view.
What Not Buying Oil With Dollars Means
Yep. If you had a C program you were automatically already using C++. You could just suddenly start to use the extra features where you wanted them. For that it was great.

If it had been D instead, an actual new version of C designed to incorporate new features, instead of C++, additional features on top of C, it probably would be less reviled but there would have been a lot more resistance to adoption.
Ask HN: Why does Lisp need to be slower than c?
It's easy to program in an imperative style in lisp. I can't think of any language feature C has that can't be used by lisp. Why can't lisp become as fast as C by using only a fast subset of a given lisp dialect?*

*I know, if you only use C features you're writing C. There's must be advantages to having lisp all the way down though. Having a fast C-esque lisp subset would make going from prototype code to performance-intensive code much, much easier.
I haven't read it, but the anchor effect seems a more specific instance of anchoring bias. Essentially when forming a an opinion/solving a problem, we do it by taking an initial value and then modifying it up or down as we see fit. This initial value is whatever we happen to notice first. So unless we get things exactly right in that first estimation, we get things wrong because we fail to revise our beliefs properly.

The best example of this bias is when people are asked to estimate the value of

1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9,

the number they come up with is around ten times lower than when asked to estimate

9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1
"Final Cut" with Robin Williams depicts a future where all life moments are recorded.
Not so sure about that, Matt Taibbi is pretty well known for being up on his shit, regardless of the fact that it's published in Rolling Stone. I think the actual distribution of the publication is more of a limiting factor than any potential stigma attached to it.
Wow, this is great to see. The fact that they're self-reflecting and thinking "Let's fight the urge to clutter things, how can we make this even simpler?" is amazing and rare for a large company.

As a for-profit corporation it must be tempting for Google to run ads on their homepage. They'd make quite a sum on it(sure most technical users rarely see the homepage but that's the exception). It's good to see that they are swinging to the other extreme instead.
When working with objects you should always do ++p instead of p++. The later one creates a temporary, so you have to work extra hard for nothing.
The Commercial Speech Arms Race
Hm. Hm. I like the idea. But when loading the page there is a ever so slight delay. If I actually want to click something not displayed by default I have to wait a fraction of a second before all that stuff fades in. Which means I will normally wiggle around my mouse like crazy to make it display stuff. The delay is not long (I’m not talking about the fade in itself, that one’s perfectly fast enough), but annoying. Since wanting actually to click something is one of the only times I personally use the Google page (not true for many other people if I trust my observations, only for crazy people like you’ll find here) I notice this every time.
> In short I was that bureaucratic nightmare called "an exception they don't have any forms for".

That can have it's advantages too :)

I misremembered by the way, it's called the 183 day rule (it's been a decade, apologies). Anyway ,here is some info on it, it seems that you may be exempted from Canadian taxes under that rules, because you are spending less than 183 days per year in Canada:

http://www.google.com/search?q=canada+taxes+183+day+rule

But maybe the specifics of the scholarship change that again.
Yes, there is no doubt that calculus is very useful and a great achievement. Yes, I think it is wonderful for people to learn Calculus. Yes, I have learned Calculus, in fact I've even taught the subject.

However I don't think that Calculus is applicable to most programmers. For many programmers it is important, and that is why I suggested it be moved to the application specific list. But more programmers will get more value from, say, basic combinatorics than from Calculus.
CLOS method dispatch does not meet the design criteria of C++. It uses runtime information about inheritance relationships, for example.

Also, note that there is also a semantic difference here between C++ (and Java) and most other languages. In C++ multiple inheritance, if classes A and B define method foo, and A and B have no inheritance relationship, then A::foo and B::foo are entirely unrelated methods -- just as if they were named A::foo and B::bar. The fact that they have the same name does not automatically create a relationship between them, as it would in CLOS or in duck-typed languages like Python. That means that a call to foo in a class that inherits from A and B is just as ambiguous as if the programmer had typed "foo, or maybe bar." This unrelatedness is inherent to C++'s type system. It would make no sense to a C++ programmer to treat A::foo and B::foo as being alternative dispatch targets for the same method call.

Even if you allow the compiler to gloss over this unrelatedness, I still think it is a matter of taste whether it is simpler to require programmer disambiguation or to have a well-defined algorithm for resolving ambiguous names. C++ usually takes heat for providing powerful more-than-meets-the-eye mechanisms that allow programmers to "hide" program semantics inside language features. Here C++ takes the opposite approach and requires the programmer to explicitly resolve ambiguous names, and it takes heat from a CLOS programmer, who could write an entire operating system using a single family of generic functions all having the same name ;-) Damned if you do, damned if you don't.
You seem to have misunderstood what I was talking about. I didn't contravene you at all.
Lisp executables are fast based on good compilers. You can usually tailor your Lisp program with declarations and speed/safety trade-offs to get very good code. There is a benchmark site called Shootout that shows how well pretty much any language compares for execution time.

And if you discover that you have the wrong approach, it is much easier to change a Lisp program than a C or a C++ program. That is my primary definition of fast.

Speed of program execution is often (not always) overrated.
It doesn't. CL allows you to specify types and have your code optimized. This is an oft-cited feature of it.
How to make Lisp go faster than C

www.lrde.epita.fr/~didier/research/verna.06.imecs.pdf

http://www.foldr.org/~michaelw/log/programming/lisp/reverse-...

And there are more papers on the subject (google for it)
well, #37 just says lists?
That's an interesting one, I never even thought of that! Thanks.
Target businesses, not consumers. It is enticing to build a consumer-oriented service when you have a great idea and a strong team to implement it. The problem is that revenue per customer is low and you will need to attract a lot of users to offset costs and reach profitability. Your runway to success is basically as long as your cash lasts. This is quite a concern if you are an unproven entrepreneur, do not have a large amount of savings, and do not have accesss to a powerful network of people. While you will need to have strong sales skills, businesses are more likely than the average consumer to pay for your product. Your revenue per customer is higher and the burn-rate (servers, bandwidth) is probably going to be much lower.
I characterize C as a portable assembly language.
I wonder if it's related to the following phenomena:

An antique seller has a a shop downtown. A second antique shop next door, and his business drops. Then a third antique shop opens across the street, the neighboorhood becomes 'the antique district', and business booms for all three.
The premise is only mostly true.

See: How to make LISP go faster than C, http://docs.google.com/gview?a=v&q=cache:pJg0zHyA8s8J:ww...

As an example, consider C pointers. The compiler never knows if two objects passed by reference are going to overlap in memory, so it can't do certain optimizations that seem obvious to a human that "knows" the pointers won't overlap.
Nobody asked; Why do you prefer Juggernaut?
Poll: Quick programming language poll to settle an argument
I know Java or C++
I know Java or C++, in addition to other languages
I don't know Java or C++, but I know other languages
I don't know programming languages
I'm very similar in my reaction to noisy environments. Since most people don't experience (or perceive, at least) the same level of distraction, it's been a point of considerable contention throughout my life.

Separately, I'll mention my perception that soundscaping played an under-appreciated role in Starbucks' growth, particularly in creating that "vibe" that people were so hooked on during the early years of its major expansion. I don't mean the few "Hear..." stores, featuring some sort of extensive music kiosks, that they've now opened, but rather the well chosen, "alternative" / college radio-station-esque music that they played. This was provided by some sort of music subscription/compilation company -- I seem to recall that it also had "Hear" in its name -- that Starbucks apparently bought out at one point. I believe that for many Starbucks regulars, it was a sole "public/broadcast" source of rather intriguing music distinct from what was being shoveled out by the increasingly Clear Channel dominated radio dial.
Goldman Sachs: 'Trading With Advantages'
Web Interface Monitoring
"Cloaking" is a naughty SEO tactic of showing one thing (like an article) to search engines and a different thing (like a login screen) to humans. Google bans cloaking; their punishment is de-indexing. But there is a loophole: showing the same thing to Googlebot and regular browsers with a Google referer isn't considered cloaking. The NY Times also uses this technique.

I can't tell you why you're out of the loop, though.
http://spirit.sourceforge.net/

It's a DSL that is similar to EBNF that generates parsers. It would be considerably more difficult to use without operator overloading.
> 5) Social media gurus

> Knowing how to tweet should not be a career in itself.
MySQL-Memcached or NOSQL Tokyo Tyrant – part 2
Assuming: you can generate any sequence of instructions you want with C.

1. The fastest possible implementation is possible in C.

2. Lisp will never "be faster" (the limited meaning of "be faster" we are considering in this context) than C because that is impossible.

3. Any difference however minor, will cause Lisp to be slower.

Thus it is highly likely that lisp will be slower.

NOTE: commenter rejects your notion of slower.
We have now barraged the original poster with papers and assertions that his premise is wrong.

How about a new premise: Why do LISP programmers write slow programs?, and if that premise gets shot to pieces, how about Why do people think LISP programmers write slow programs?.
But isn't it a wonderful excuse! "Oh, it was my WEP that did it, officer".
Hmm, for my site it seems to cut off at right around the 3000th line of source. Should I be worried about this? Is this a bug in the "Fetch as Google" feature or perhaps googlebot cuts off after the 3000th line...?
Throwing an exception isn't saying "I don't feel like dealing with this", but rather, "A problem has occurred". In C++ (ignoring exceptions), you typically (or hopefully!) return an error code and rely on the caller to handle the issue. In Java, with checked exceptions, a catch or declaration that the current method can throw the same exception is needed for compilation.

Now, this doesn't stop empty catch blocks or other horrible coding practices, but professional software engineers should never let that happen in their code (and there are lots of people who do, and they shouldn't be getting paid to write code!)

Checked exceptions wouldn't fix the memory leak issues in C++, I routinely use the shared_ptr template to fix that, but it would be a good step forward.
Why Eggs Could Be Getting Harder to Peel
Quick question for any nginx experts: the following config setting:

set $push_channel_id $arg_id; #/?id=239aff3 or somesuch

Means that the ?id= querystring paramater is used as the push channel ID. Any idea if it would be possible to set it up so /channel/12345/ would result in 12345 being set as the push channel ID?
And especially since that is the original article title and describes it much better.

Clojure is one of the more interesting developments in language land in the last couple of years, this might just be what will bring lisp to the mainstream.
I doubt it was sticky fingers because sticky fingers was not a hits album. More likely to be Hot Rocks?
Aye, I hear you. But the problem is not that people use stuff the way it is intended, but they will use it in ways that it is not intended!

> Now, this doesn't stop empty catch blocks or other horrible coding practices,

Exactly...

> professional software engineers should never let that happen in their code

I could show you some horror stuff I'm dealing with right now that does exactly that.

The bigger problem is that it works and that I'm having a hard time convincing other people that that is not how it is done.
We started using XtraDB a few months ago, I wasn't involved in the actual implementation of it so I asked our DBA, here is what he said:

"it is supposed to work better with 8 core boxes like we have - both in terms of IO, and cpu usage.

it also gives us more flexibility on tweaking parameters."
Wow, Jagger was 26 when he wrote this. Writing one of America's top artists with such informality and confidence is amazing
I guess Big Bro is coming soon as electronic jewelry
Not all problems require communicating your data structure outside of the program. And I don't think it's accurate to say "Now you need." For problems where you do need to communicate data outside of the program, that's been true since the days of Fortran.
Recently, I went from Ruby on Rails web programming to C++ w/Qt GUI programming. Using the C++ features that I choose, C++ is actually pretty fast to develop on... (I did MFC years ago and that was nasty but Rails internal code is also awful, with fifty-million separate classes just for exceptions).

Aside from C compatibility, C++ also allows one to create simple structures and procedures when such simple beasts are appropriate.

I currently suspect one should have either "full" object orientation plus weak typing OR weak object orientation plus strong typing. Strong typing plus full OO = Bondage and Discipline language, where the size of the code itself starts to really drag your development and debugging time down.

While Ruby or Python allows compact but slow code, Java and C#, among other excesses, force one to create a full class for every two-field data-structure. Thus C++ is more compact than C# and Java and faster than Python and Ruby, winning for race for a desktop application language (oddly enough, desktop apps need a fast language because they must compensate for desktop windowing systems being more bloated and users expect more from their machine each).

I'm sure Haskell or Lisp are excellent for some things but I don't think their paradigm is very compatible with GUI programming - I'd be interested if someone has a counter-example.
> who could write an entire operating system using a single family of generic functions all having the same name ;-)

I sense an upcoming challenge! ;)
Pretty much every bubble in modern financial history, including the great depression, resulted from easy credit with nothing behind it.
It's turtles all the way down! The next step would be Why do people think people think lisp programmers write slow programs?
Bill Gates' Open Letter to Hobbyists
I would say C++ is somewhat less portable assembler than C, due to different linker semantics, which is not unified across platforms.
Expected better from the telegraph but this is again diggbait.
Agreed, DSLs are the one area that I can think of where overloading is a 'natural'.

Unfortunately its use is not quite limited to code like that.
Well, sure. You can write code like that, but that doesn't mean you should. I'm not arguing for so-called "poetic mode" code (I hate it actually), but I think languages like Ruby and Python strike a really solid balance between lack of line noise and clarity if you follow what one might call normal coding conventions established by the community. Of course, these aren't canonized for the most part, so it's hard to know exactly what they mean, but I think everyone can agree that "x = foo bar, baz" should be clarified to "x = foo(bar, baz)," if nothing else because it will eliminate any parser confusion if you add a predicate conditional or something like that.

Anyhow, my point is that I can write C or Java or whatever else that's just as unreadable due to its lack of clarity, but that doesn't mean I will. It's a skill issue more than a language issue. ;)
use of operators should be reserved to those situations where the outcome is predictable, and where operator precedence rules are the same as they would be when adding numbers.

So what's stopping you? That's exactly the way I do it. In my C++ career I've only overloaded math operators for math types, * and -> for smart pointers, [] for container-like types, and () for callable objects. At least in production code... I did some crazy and irresponsible things in college, just like everyone else.

If there's one point I've been wanting to make over and over again in this discussion, it's that misuse of language features is a much smaller problem than people think. (In practice, it is even negligible next to the overhead of reading poor error messages from the STL.) C++ is a very bad programming language for people who fear their coworkers, but so are C, Ruby, and any Lisp with macros. Even Java isn't protection against stupidity: a bad Java programmer on your team can't confuse you, but he can bury you.

Just think of defmacro as implicitly adding an infinite number of infinitely complex language features to Lisp. If you can deal with defmacro in a responsible way, operator overloading shouldn't bother you at all.
You-Centric: The Future of Browsing
The Poetic Lyrical Mastery of Chuck
Haskell is pretty theoretical, but on the lisp front I think AutoCad and Emacs more than qualify.
Pirate Bay Trial Judges Now Accused Of Bias
On The State Of Digg's New Monetizable Click Ads
Reading, E-Books and the Brain
I was dismissive of it at first but after further listening he is spot on.
Thanks for the sweet data! Could I ask for anyone who only knows "other languages", which ones do you mostly use? What sort of field are you in?
Software Design Review
I pull HN (and everything else) through Google Reader so I don't see the URL, only the title. Thanks for the down votes tho.
We all just know that this will be technically feasible in our lifetime. The challenges, as you pointed out: if it's not searchable, then we'd have to spend a second life browsing through our first. Then there are some privacy issues, which will probably be ignored in practice, if past history is any guide.

But it has some very interesting consequences on human interaction.
That's an interesting idea. Maybe we could use some interesting automatic means to "cluster" information from these new technology areas. Suppose a system allowed someone to create a new technology area by defining all the entities involved in it (Names of people, research center, location of research center etc). A web crawler could use these as filters to pick out the latest info from it and supply it to the interested folks.
Jagger was one of the most famous pop musicians of the day, and Andy Warhol has a reputation for being a freak. He never comes across as a very inaccessible guy.

Formality's best unlearned at as young an age as possible.
Science is made of small reproducible pieces. Yes, real world is more complicated, but what the article gives is a pertinent explanation to a certain case. When we have enough such "certain cases" completely understood we go to combining them, and then we have something useful. If you always work with the real world case you may get quicker results, but it will be statistics, not science.
Just noticed this on Hacker News. It's been a busy day at the office, so haven't had a chance to see this post until now. I actually curate Burstoid as a side not-for-profit project. I did attribute it to the source swiss-miss.com where I saw it earlier today in my feed reader. Never saw the original site, because she didn't link to it -- it looks as if she was pointed to it via Twitter. Regardless, it's a neat letter and I'm glad someone submitted it to Hacker News for all to see.
Disenchantment with work is growing. What can be done about it?
Busting Psychology Myths
If you're into extreme survival mode, why not go directly with growing your own crops and vegetable garden :-)
exceptions are almost always going to cause leaks without the team being all C++ experts

Don't give up exceptions; give up naked pointers. Use shared_ptr and scoped_ptr, and you won't have memory leaks due to exceptions. Use RAII consistently, and you'll find it's actually easier to handle resource management in C++ than in Java. Java's resource management is superior for memory but inferior for every other resource.