News for hackers. Stuff that matters.
Re:How We Went from 30 Servers to 2: Go by georgeorwell on Tuesday March 12, 2013 @07:01PM (#5365584)
What, you don't know about The Programmer Hierarchy?

https://news.ycombinator.com/item?id=1622553

http://lukewelling.com/wp-content/uploads/2006/08/programmer...

I find a lot of people who use high-level languages are terrified of tediously direct contact with the machine, and a lot of people who use low-level languages are terrified of the performance costs of abstraction. I'm terrified of both.

I think that in general, C++ is a lot harder to get your head around than C, being for all intents and purposes a superset, and an easily five times bigger one at that.

Re:How We Went from 30 Servers to 2: Go by kenfromm on Tuesday March 12, 2013 @07:11PM (#5365636)
Love this comment, "I'm terrified of both."
Re:How We Went from 30 Servers to 2: Go by stcredzero on Tuesday March 12, 2013 @07:42PM (#5365790)
That's how you gauge the experience of a programmer: how much of the field she/he's terrified by.

EDIT: I originally meant this as a joke, but seriously, if someone accurately knows where the gotchas are, that's valuable. Also note if they're biased to false positives and/or false negatives, and by how much. Are their heuristics for dealing with unknown territory efficient and likely to converge on good approximate results?

Re:How We Went from 30 Servers to 2: Go by hakaaaaak on Tuesday March 12, 2013 @10:24PM (#5366414)
> That's how you gauge the experience of a programmer: how much of the field she/he's terrified by.

I'm terrified by what I don't know, especially by what I don't know that I think I should know, to be "in the know".

Re:How We Went from 30 Servers to 2: Go by georgeorwell on Tuesday March 12, 2013 @08:20PM (#5365944)
Thanks guys, I guess I really have had some rough times. I like how Lisp and Assembler at the top of the hierarchy capture the two extremes. Some hypothetical language in the middle would be great, but maybe the best we can do is to straddle that point, e.g. with C++ and Python.
Re:How We Went from 30 Servers to 2: Go by willismichael on Tuesday March 12, 2013 @08:38PM (#5366020)
Rather than straddle the middle, I think I'd go with as high-level a language as I could get, coupled with a simple low-enough-level language to get whatever performance benefits I needed. Some combo like Python/C, Clojure/Java, or maybe some other lisp dialect and C.
Re:How We Went from 30 Servers to 2: Go by nkorth on Wednesday March 13, 2013 @07:47AM (#5367842)
Lua is known for pairing really well with C.
Re:How We Went from 30 Servers to 2: Go by eru on Tuesday March 12, 2013 @11:23PM (#5366605)
> I like how Lisp and Assembler at the top of the hierarchy capture the two extremes.

Not really. I'd place Agda or Coq above Lisp.

Re:How We Went from 30 Servers to 2: Go by qznc on Wednesday March 13, 2013 @02:41AM (#5367177)
That is somewhat orthogonal. Lisp is better at abstraction than Agda or Coq or Isabelle or any of those ML/Haskell theorem proofers. To maintain the theme:

C if you are terrified about performance

Lisp if you are terrified about boilerplate

Agda if you are terrified about correctness

If you are terrified about all of these, then welcome to the world of engineering.

Re:How We Went from 30 Servers to 2: Go by eru on Wednesday March 13, 2013 @10:27PM (#5372713)
If you wrote an S-Expression syntax on top of Agda (or Haskell), you gain all of Lisps anti-boilerplatitude for free. There's of course also Template Haskell.

As it is, the static typing helps to avoid some boilerplate, too, indepedent of macros. In some sense, static typing removes, among other things, boilerplate tests.

Re:How We Went from 30 Servers to 2: Go by Shamharoth on Wednesday March 13, 2013 @08:43AM (#5367994)
If you are terrified about all these, there is ADA.
Re:How We Went from 30 Servers to 2: Go by kragen on Wednesday March 13, 2013 @02:04PM (#5370017)
Ada gives you neither the performance of C nor the abstraction- and boilerplate-removing power of Lisp nor the provability of Agda. This is why it is not used.
Re:How We Went from 30 Servers to 2: Go by Shamharoth on Wednesday March 13, 2013 @02:12PM (#5370079)
The performance is pretty close, actually (far more than Go, for example) : http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...

And yes, it is not used, only in some obscure and low profile projects : https://www.adacore.com/customers

Re:How We Went from 30 Servers to 2: Go by kragen on Wednesday March 13, 2013 @09:22PM (#5372493)
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te... might be a better link to show how Ada performance compares to C: ranging from twice as fast to three times as slow, with a median in favor of C. It's true that it's pretty close. I don't know if those numbers are representative of how performance works out in the real world; any insights from your experience?

Golang, it's true, is in the 3×–10× ballpark.

https://github.com/languages/Ada shows Ada as the #52 most popular language on GitHub. The #10 most popular is Objective-C at 3%. Using R:

    summary(lm(log(c(25, 13, 8,8,8, 7, 6, 4, 4, 3)) ~ log(1:10)))
I derive that the Nth most popular language on Github is used in 24% * N -0.81 of projects, with an R² of 0.93. This suggests that Ada should be in use on about 0.98% of projects on Github, which makes me wonder why https://github.com/languages/Ada/updated?page=10 can only find 200 Ada projects that have been updated in the last nine months. (JS, the #1 language, has 200 projects updated in the last 22 minutes.)
Re:How We Went from 30 Servers to 2: Go by kragen on Wednesday March 13, 2013 @11:45PM (#5372959)
That should be 24% × N ^ -0.81. The double asterisk I was using for exponentiation got eaten.
Re:How We Went from 30 Servers to 2: Go by stcredzero on Wednesday March 13, 2013 @12:36PM (#5369481)
Ada. Not an acronym.
Re:How We Went from 30 Servers to 2: Go by coldtea on Wednesday March 13, 2013 @05:27AM (#5367543)
>Not really. I'd place Agda or Coq above Lisp.

Because more than 10 people have heard of and use Agda or Coq?

Re:How We Went from 30 Servers to 2: Go by willismichael on Tuesday March 12, 2013 @11:45PM (#5366696)
I'm already having a hard enough time convincing the team at work to use Clojure!
Re:How We Went from 30 Servers to 2: Go by eru on Wednesday March 13, 2013 @01:30AM (#5366993)
Oh, Clojure is probaly more useful in practice. We also stick to a Haskell dialect at work, and don't dabble in Agda for production.
Re:How We Went from 30 Servers to 2: Go by 16s on Tuesday March 12, 2013 @08:52PM (#5366088)
C++ and Python pretty much run everything, everywhere. Standard, open languages are hard to beat when you want to fully control your development stack and not worry about future control issues. I wish go was an ISO standard like C++, I'd be more interested if it was.
Re:How We Went from 30 Servers to 2: Go by stcredzero on Tuesday March 12, 2013 @09:56PM (#5366322)
> C++ and Python pretty much run everything, everywhere.

I don't think so. Last I heard, there was still a lot of COBOL out there.

Re:How We Went from 30 Servers to 2: Go by kyllo on Wednesday March 13, 2013 @09:48AM (#5368288)
Yes, yes there is.

Most banks, and many other businesses that have been around 30+ years, are still running on COBOL.

It was popular because of its highly readable syntax and its fixed-point packed decimal math for financial calculations.

Re:How We Went from 30 Servers to 2: Go by dwd on Wednesday March 13, 2013 @01:24AM (#5366973)
COBOL gets all the hate but if they have a Big iron mainframe then they'll most likely be running RPG.
Re:How We Went from 30 Servers to 2: Go by pjmlp on Wednesday March 13, 2013 @03:32AM (#5367289)
Only if it is AS/400 based systems.
Re:How We Went from 30 Servers to 2: Go by mindcrime on Wednesday March 13, 2013 @12:45PM (#5369529)
RPG was more oriented towards mini-computers than mainframes, from what I recall. It's niche was the IBM S/36, S/38, AS/400 and iSeries boxes. I'm sure you probably could get RPG for your S/360 or S/390 or whatever, but from what I've seen over the years, it was mostly COBOL, PL/I, and MVS Assembler on the mainframes.
Re:How We Went from 30 Servers to 2: Go by EnderMB on Wednesday March 13, 2013 @05:20AM (#5367520)
Fantastic! I'm primarily a C# programmer and have first-hand experience of this being true.