News for hackers. Stuff that matters.
Re:Ten predictions (2004) by friendly_chap on Friday February 15, 2013 @06:09AM (#5225574)
1. XML databases will surpass relational databases in popularity by 2011. We got NoSQL (esp. JSON based ones) instead of XML. Close enough though.

2. Someone will make a lot of money by hosting open-source web applications. Github is cool but with all the cheapskate web devs (no offense, I am one of them) I don't think it is _that_ profitable.

3. Multi-threaded programming will fall out of favor by 2012. Not really. We are already in the multicore age, and it will only get moreticore.

4. Java's "market share" on the JVM will drop below 50% by 2010. Not in 2010, not even yet, but we are certainly on the road. No surprise considering how shit Java is.

5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

6. A new internet community-hangout will appear. One that you and I will frequent. This is such a vague prediction does not even worth mentioning.

7. The mobile/wireless/handheld market is still at least 5 years out. Happened sooner.

8. Someday I will voluntarily pay Google for one of their services. You don't say? They are one of the biggest players out there, even if they are not primarily known for payware but still.

9. Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. No way, thanks God.

10. In five years' time, most programmers will still be average. This makes no sense, but anyway, we are getting better. Slowly though, version control, more languages, testing is infiltrating even some dumber dev companies too.

--

I give this guy a mental thumbs up for points 1 and 4, and the cynicism in point 10.

Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @06:16AM (#5225594)
> We got NoSQL (esp. JSON based ones) instead of XML.

Thank god we dodged that bullet. I'm just glad people see XML for what it really is (useful, but not that useful).

> Not really. We are already in the multicore age, and it will only get moreticore.

The problem is multi-threaded has never really took off, even with all the cores we have today. There is still no silverbullet to harnessing parallelism.

> Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. No way, thanks God.

Apple's profits on laptop sales (not other iOS devices) exceed those of HP, Lenovo, and Dell (everyone else being dead). Apple has been in no hurry to capture the unit shipped crown (and if we count iPads, they are already there).

> In five years' time, most programmers will still be average.

A tautology if I ever heard one.

Re:Ten predictions (2004) by Nursie on Friday February 15, 2013 @07:21AM (#5225795)
> The problem is multi-threaded has never really took off, even with all the cores we have today. There is still no silverbullet to harnessing parallelism.

MMmmm..... yeah it has. I'll agree on the silver bullet, but I don't think they need one.

Threads are all over the place, and easier than ever to use. They do require intelligence to use well, and people to think about things like locking strategies, but they really are not all that hard. It amazes me that people seem to be so scared of them for some reason.

Perhaps it's the problem domain I work in (back-end server systems) but I come across them all the time. When dealing with lots of distinct tasks for lots of distinct clients you can make good use of threads without needing to do the kind of hard-core mathematical analysis that you would apply to splitting single tasks across parallel systems.

(And no, I'm not suggesting that a one-thread-per-client model is a silver bullet, there are more efficient async ways of doing things)

Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @07:41AM (#5225845)
I really don't see threads being used explicitly more today then they were 10 years ago. The number of programmers who are proficient in dealing with locks, semaphores, etc...doesn't seem to have grown much (perhaps not outpacing the overall rate). If anything, we have a lot more code these days that is not explicitly multi-threaded but is implicitly concurrent in some other way that may or may not use threads under the covers (async, job managers).
Re:Ten predictions (2004) by namdnay on Friday February 15, 2013 @09:26AM (#5226272)
Exactly, in fact I'd say there's a lot more multithreading going on today, it's just that it's hidden behind whatever JEE framework people are using. This isn't a bad thing, enterprise developers (i.e. 90% of us) shouldn't have to worry about mutexes any more than they have to worry about interrupts or sorting algorithms.
Re:Ten predictions (2004) by Nursie on Friday February 15, 2013 @09:39AM (#5226334)
Out of interest, how does an enterprise developer (whatever that means) ensure consistency of data and good performance, the two competing aims of a decent mutex/lock strategy? Is it taken on trust that someone else handles this, and therefore hidden in 'safe' data structures or... ?
Re:Ten predictions (2004) by sophacles on Friday February 15, 2013 @10:10AM (#5226492)
One place you see a lot of good "under the covers" stuff going on is with .Net 4.5. The task parallel stuff they have is really decent. You still have to think a little bit about concurrency issues, but if you are careful to use their thread safe structures, they have taken care of a lot of the harder parts for you. It is a neat model that just plays out pretty nicely.

Another cool product is Disruptor - they have figured out a good, fast way to do message passing that minimizes the need for concurrent data structures between worker threads. (Provided of course you can model your app in that way). Under the hood, they have some crazy dep memory barrier based stuff, but for most of the programmers on a team, thinking about that stuff is just not needed. (as an aside, I think if Beautiful Code 2 was being written, I think Disruptor should be included, that source code is downright inspiring.)

The point being, once you have a good, trusted and vetted set of primitives, and are willing to put a little effort into working in a paradigm someone else sets, you get a lot of benefit. This is no different than using RoR or Django instead of rolling your own web framework.

Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @08:06PM (#5229828)
If threads or processes or distributed computing is being used under the covers, does it still count as multi-threaded programming? I could go out and design an machine/OS that didn't use what we would think of threads (think Atari's Transputer [1]), and all these implicit threaded schemes would still work with my new construct. Now, we might not have transputers, but some of us get to use GPUs and such (still niche, but growing), where the unit of parallelism no longer resembles a thread very much.

My point was that multi-threaded programming hasn't taken off because it hasn't needed to. We just get some really smart experienced guys to write our infrastructure that encapsulates thread use and all of us get to reuse that.

[1] http://en.wikipedia.org/wiki/Transputer

Re:Ten predictions (2004) by Nursie on Sunday February 17, 2013 @04:12AM (#5234662)
Somebody still needs to be the smart experienced guy. Somebody still needs to write the language VMs, low level libraries and interfaces, device support etc etc.

I really don't get on with this mindset that someone else can fix it.

Re:Ten predictions (2004) by namdnay on Monday February 18, 2013 @09:32AM (#5238433)
I'm talking about higher level abstractions than concurrency frameworks integrated in Java or .Net . In an enterprise world, if you need to parallelise tasks between multiple consumers, you just add them to a JMS queue/topic and tweak some obscure xml to say who consumes it and how.

In fact, using any thread or concurrency mechanism in JEE code is considered a code smell, you should be handling it with the Spring/JMS/Jboss setup

Re:Ten predictions (2004) by Nursie on Monday February 18, 2013 @11:32AM (#5239020)
Never done any JEE, or 'Enterprisey' coding in my life, so I wouldn't recognise code smell if it was waved under my nose :)

I've had the sort of career that involved highly-optimised in-memory databases, high-volume, low-latency payment processing and stuff like that. So I'm used to dealing with this stuff direct.

Re:Ten predictions (2004) by zeeboo on Friday February 15, 2013 @08:36AM (#5226048)
> A tautology if I ever heard one.

Consider this set of programmer "skill levels" where most (80%!) are above average: {10, 10, 10, 10, 1}

Re:Ten predictions (2004) by akavi on Friday February 15, 2013 @02:12PM (#5227859)
Can we, as a group, just agree that we're all sufficiently aware of the fact that yes, average (by which we all mean "mean", don't be pedantic) does not require that 50% of the referent group is above and below that number for all sets of data, but, since we're almost always talking about a more-or-less normally distributed data set, it's close enough that the deviation isn't really worth talking about?

Because I'm somewhat tired of seeing this exact comment every time the word "average" is mentioned.

Re:Ten predictions (2004) by DoubleMalt on Friday February 15, 2013 @08:47AM (#5226090)
If we take your very narrow definition, the chances of any programmer to be (exactly) average are zero, if we relax a little bit we're back at tautology.
Re:Ten predictions (2004) by lkozma on Friday February 15, 2013 @11:02AM (#5226775)
Than take {1,1,2,3,3}. By any reasonable definition the average is 2, and the most frequent values are 1 and 3.
Re:Ten predictions (2004) by fauigerzigerk on Friday February 15, 2013 @09:14AM (#5226210)
No, it's not a tautology at all. For instance, one sensible interpretation of the prediction would be that > 50% of all developers are within a range of += 10% of the average performance score. This may or may not be true.
Re:Ten predictions (2004) by zeeboo on Friday February 15, 2013 @11:22AM (#5226896)
It's not my fault the definition of average is very narrow.
Re:Ten predictions (2004) by aleyan on Friday February 15, 2013 @12:17PM (#5227178)
The definition of average[1] is not narrow. It could be mean, median, or mode or something else.

[1] http://en.wikipedia.org/wiki/Average

Re:Ten predictions (2004) by spatters on Friday February 15, 2013 @07:46AM (#5225856)
> A tautology if I ever heard one.

It's not a tautology, it's the asymptotic equipartition property.

Re:Ten predictions (2004) by B-Con on Friday February 15, 2013 @11:54AM (#5227054)
Did you actually read what he said?

> Of course most programmers will still be average, by definition. The problem is that the average level of quality and productivity probably won't have changed all that much.

It would appear not.

It's always funny how people take a serious person who has otherwise written a very insightful article, take a sentence out of context, and proclaim it silly.

Re:Ten predictions (2004) by vacri on Friday February 15, 2013 @10:33AM (#5226615)
A tautology if I ever heard one.

RTFA

Re:Ten predictions (2004) by Ingaz on Saturday February 16, 2013 @05:48AM (#5231121)
>> We got NoSQL (esp. JSON based ones) instead of XML. >Thank god we dodged that bullet. I'm just glad people see XML for what it really is (useful, but not that useful).

XML, JSON, MUMPS-storage are semantically equivalent.

XML is not about "<" and ">".

Re:Ten predictions (2004) by wuest on Friday February 15, 2013 @09:16AM (#5226219)
> A tautology if I ever heard one. In fairness, that statement was clarified: "In five years' time, most [future] programmers will still be average [by today's standards]."
Re:Ten predictions (2004) by friendly_chap on Friday February 15, 2013 @06:22AM (#5225616)
> useful, but not that useful

+ 1

> Apple's profits

With all respect, I have hard time seeing Apple laptops outside the US. Not counting some fanboys who acquired the taste trough some snob blogs.

Re:Ten predictions (2004) by MrScruff on Friday February 15, 2013 @06:39AM (#5225666)
With all respect, I have hard time seeing Apple laptops outside the US.

Indeed. And where I am (also outside the US) I have a hard time seeing non-Apple laptops. Anecdotal evidence isn't really that useful when we're talking about global trends.

Not counting some fanboys who acquired the taste trough some snob blogs.

Making statements like this cause you come across as overly emotionally invested in your platform, and make others less likely to take your arguments seriously.

Re:Ten predictions (2004) by friendly_chap on Friday February 15, 2013 @06:55AM (#5225708)
> Emotional investemented

No. I happen to use anything. I am not against Apple, I am against the Apple fanboyism. And any type of fanboyism.

> Anecdotal evidence

http://en.wikipedia.org/wiki/Usage_share_of_operating_system...

"For example, most desktop and laptop computers use Microsoft Windows"

Re:Ten predictions (2004) by MrScruff on Friday February 15, 2013 @07:35AM (#5225833)
No. I happen to use anything. I am not against Apple, I am against the Apple fanboyism. And any type of fanboyism.

'Fanboy' is a pejorative term used on the internet to try and infer irrationality in others. It's like hipster. It doesn't make you magically qualified to judge others opinions or motivations just by using it.

"For example, most desktop and laptop computers use Microsoft Windows"

That is not anecdotal, though it's also not the fact being discussed. Note that I'm not trying to argue that Apple sells more laptops combined than the other main manufacturers, I don't believe they do.

Re:Ten predictions (2004) by youngerdryas on Friday February 15, 2013 @08:35AM (#5226043)
He knows very well it is a pejorative term, that is why he used it.
Re:Ten predictions (2004) by tbassetto on Friday February 15, 2013 @07:10AM (#5225758)
> http://en.wikipedia.org/wiki/Usage_share_of_operating_system... > "For example, most desktop and laptop computers use Microsoft Windows"

Apples and oranges (no pun intended). We were talking about unit sales, not market share.

Turns out that Apple's laptop sales do not exceed those of HP/Compaq, IBM, Dell and Gateway combined but Apple's iPad sales was already doing it one year ago: http://www.computerworld.com/s/article/9223707/iPad_sales_be... and from profit POV I bet it is the same.

Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @06:40AM (#5225668)
> With all respect, I have hard time seeing Apple laptops outside the US.

Maybe Africa? I live in China and I see a lot of them here; China is Apple's second largest market now.

The fanboy argument is funny to no end. I mean, I still can't find a freaking non-Apple laptop that isn't a huge piece of crap. Maybe the X1 will change my mind, but they are on hold right now due to faulty touch screens.

I'm scared to death that only Apple is willing to produce non-crappy laptops these days, that the other PC vendors have given up and are content putting out cheap crap (and expensive crap for the enterprise). Depressing.

Re:Ten predictions (2004) by kristiandupont on Friday February 15, 2013 @06:56AM (#5225713)
"Not counting some fanboys who acquired the taste trough some snob blogs."

Language like this seeds religious discussions. Please avoid it.

Re:Ten predictions (2004) by friendly_chap on Friday February 15, 2013 @07:10AM (#5225760)
You are right, point taken.
Re:Ten predictions (2004) by dagw on Friday February 15, 2013 @07:25AM (#5225806)
Half the programmers and web developers/designers I know here in Sweden have Apple laptops, (including several Windows devs). Peeking into random coffee shops and walking past university campuses also seem to indicate that they're quite popular overall. Of course all those people could simply be fanboys who acquired the taste trough some snob blogs, but I'm not sure how to tell.
Re:Ten predictions (2004) by jiggy2011 on Friday February 15, 2013 @07:41AM (#5225844)
People at universities and who work at the sort of jobs you can do from coffeeshops are probably significantly more affluent that average.
Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @07:50AM (#5225868)
Hence Apple's profit share is much better than its market share.
Re:Ten predictions (2004) by yalogin on Friday February 15, 2013 @07:17AM (#5225781)
That is an unusual extrapolation. So people outside the US buy Apple laptops because they are fanboys? I understand you have complaints/grievances against Apple but this is not r/technology.
Re:Ten predictions (2004) by coldtea on Saturday February 16, 2013 @03:15PM (#5232826)
>With all respect, I have hard time seeing Apple laptops outside the US. Not counting some fanboys who acquired the taste trough some snob blogs.

Well, I see tons of Apple laptops in places ranging from France, to poverty striken Greece to SE Asia.

If you live in some Eastern European country, Latin America or Africa you might see way less. Macs are for the richer part of the computing buying public.

Worldwide Apple commands around 4-5% of laptop shipments, but in places like US and Japan that can get to 15-20%, and for specific categories like ultraportables it can get to 60%.

Re:Ten predictions (2004) by abrahamsen on Friday February 15, 2013 @07:03AM (#5225739)
> With all respect, I have hard time seeing Apple laptops outside the US.

More than half of our students (agriculture/environment at University of Copenhagen) have Macs, the fraction being higher in the earlier classes.

Re:Ten predictions (2004) by jmspring on Friday February 15, 2013 @07:12AM (#5225763)
Recent trips (last 6-8 months) - Sydney, London, Germany/Continental Europe - I saw Macs all over. Were they the most numerous? Not really, but they were quite visible.
Re:Ten predictions (2004) by RyanMcGreal on Friday February 15, 2013 @06:57AM (#5225720)
> We got NoSQL (esp. JSON based ones) instead of XML. Close enough though.

JSON is basically XML with 50% less bullshit. It does less but it does it so much more elegantly than XML - and has the further benefit of a syntax similar to that of structured data in such languages as Javascript (duh), Python and Ruby - that it was a shoo-in to squeeze XML out of most non-enterprise uses, at least on the data transfer format side.

However, to this day most data still resides in SQL databases, which have the net advantages of speed, stability and reliability that come from long lead time. What has changed is that object-relational mapping has gotten vastly better than it was in 2004, so programmers can mostly enjoy the best of both worlds.

There's also the fact that SQL is an easy enough DSL to understand, read and write that it isn't a barrier to use even in edge cases where ORMs fall down.

Re:Ten predictions (2004) by jimbokun on Friday February 15, 2013 @10:56AM (#5226749)
It's true that JSON document databases very closely follow the model set out by earlier XML document databases, and have succeeded for the reason Yegge spelled out.

The big lack is the equivalent of XQuery and XPath, in my opinion. Javascript plays this role in some systems, but I don't think there is anything for Javascript matching the power and flexibility of XQuery/XPath for querying and transforming data.

I would be happy to learn about query languages for JSON document databases that prove me wrong.

Re:Ten predictions (2004) by wildgift on Friday February 15, 2013 @09:18PM (#5230034)
JSON is traditional: dictionaries, arrays. OO languages have built-in syntax to deal with those, via [] and dot notation, and the array objects nowadays have ways to do map() apply() grep() etc. on the collections.

The main thing missing is that XML has attributes, so you can query against those.

I won't say that the JS stuff is better, but it's one less thing to learn, and what you learn is directly applicable to writing apps in JS.

Re:Ten predictions (2004) by SonicSoul on Friday February 15, 2013 @08:53AM (#5226119)

    > object-relational mapping has gotten vastly better than it was in 2004
Maybe so, but it still seems like it's only good for prototyping. With each new version of ORM i get excited and try to implement it, but sooner or later it comes to bite me in the ass, and long term maintenance becomes more painful than not using ORM with all the low level hacks that need to be added and tricky management of the mapping config.
Re:Ten predictions (2004) by ryanbrunner on Friday February 15, 2013 @09:47AM (#5226372)
I think the key difference, at least among most developers I work with, is that ORM has evolved from a complete abstraction of all relational querying, into more of a productivity tool that can be useful in certain circumstances.

The differences between something like Hibernate and something like ActiveRecord is pretty vast, at least in terms of usage, and I think one of the key learnings we've made since 2004 is that it's not practical or feasible to treat ORM as a silver bullet.

Honestly, no one should be surprised that ORM isn't a silver bullet. NoSQL isn't either - there's plenty of caveats that should be considered before deciding on using NoSQL. I'd still argue that about 80% of database interactions can be solved by a decent ORM. Anything that lets me ignore 80% of my trivial problems and focus on the 20% that's actually challenging is a net win in my book.

Re:Ten predictions (2004) by corresation on Friday February 15, 2013 @11:30AM (#5226943)
JSON is basically XML with 50% less bullshit.

I don't get this. XML has the capacity of being as simple as you want it to be. You don't need schemas, namespaces, xpath, and so on, and can make your XML life every bit as easy as JSON. In many ways easier given that JSON doesn't even have a bloody date or time type.

But if you do want strong-type validation, schemas and namespaces are there for you. If you want an easy, standard way to query, XPath/XQuery are there for you. If you want to wholesale completely restructure entire documents/data blobs, XSLT is there for you.

I have never gotten the hate for XML. I suspect -- and this is not some sort of slur against those who don't like something I like, but rather is an observation about general tech trends -- that many programmers were simply too lazy to understand all of XML, so rather than work in an area where they felt ignorant (again, nothing stops you from making bespoke XML at your desire), JSON and things like it seem so appealing.

Re:Ten predictions (2004) by csense on Friday February 15, 2013 @11:57AM (#5227064)
1. JSON has an easy way to specify data types. In XML you have to have multiple nested tags. In JSON my document can be:

  {"mynumber" : 5, "mylist" : ["one", "two", "three"]}
Simple, neat, and fits on one line.

In XML this has to be

  <!DOCTYPE some-magic-string-nobody-can-remember>
  <topnode>
    <mynumber><int>5</int></mynumber>
    <mylist>
      <str>one</str>
      <str>two</str>
      <str>three</str>
    </mylist>
  </topnode>
Of course, I don't know what you're talking about "JSON doesn't even have a bloody date or time type" when XML doesn't have anything but strings. In order to parse this, I'd have to have code which looks for <int> tags and runs my language's atoi() on the content.

Maybe there are libraries that do this automatically. If there are, the XML community does an excellent job of hiding them from developers; I've worked a fair bit with XML, and haven't found them.

2. Easy interface with popular languages. You can just copy-paste a JSON string into a Javascript / Python app. (Warning: If you do this programmatically, it's going to be a security vulnerability.) Whereas if you want to use XML, you have to jump through a lot of hoops. Especially with Java; AFAIK the Java standard lib only ships a specification for XML parsing. So while the org.w3c.xml namespace is there (or whatever it's called, it's been a while), you have to install some Apache lib called Xerces or Xalan or Xavier (or whatever it's called, it's been a while) in order to have XML support.

This is Java's fault, not XML's; but XML was a shiny cool thing at about the same time Java was, so a lot of peoples' main XML experience (or at least mine) is in Java.

3. Is a subset of many popular languages. A lot of people -- especially web developers -- only know one language. If you know JS, then you know JSON. But XML syntax and semantics is very different from most programming languages, and that's a barrier. (General XML is much different than HTML. In particular, you can always see what HTML "does" by loading it in the browser because everything has default styles; not so with a general XML format, unless you go through the pain of writing a complete style yourself.)

Re:Ten predictions (2004) by fusiongyro on Friday February 15, 2013 @01:11PM (#5227474)
Your ideas about Java and XML are very dated. JAXB makes it essentially transparent to convert an object to XML and back, and with JAX-RS I can give you a REST API that returns XML or JSON, your pick, for basically no effort on my part. These are part of the Java EE 6 web profile, so basically everybody gets them for free. Most of us don't "install libraries" anymore so much as add four lines to our Maven POMs.

Point #2 isn't very strong. Every language has good support for both technologies these days.

Point #3 is absurd. If you know JS and you know HTML, you're not far from the basics of XML. If you're contemplating JSON as a replacement, you're either assuming our poor web developer is really stupid or you're comparing apples to oranges.

In general, your argument here is that JSON is shorter and more popular. Sure. But unless your top concern is bandwidth (hey, maybe it is) there might exist other technical reasons to make the choice which are less childish.

Re:Ten predictions (2004) by csense on Friday February 15, 2013 @02:20PM (#5227922)
1. What's a good tutorial to learn JAXB and JAX-RS?

2. Maven is a nightmare too. Every time I've used it (usually because I'm compiling someone else's code and they wrote the build in maven), it downloads hundreds of megabytes of who-knows-what from random Internet sites. I want to pin versions of dependencies (and dependencies-of-dependencies) so my builds are repeatable, and I want to be sure everyone who's forked my git repo can still build the code if the Maven URL's for the deps have gone out of business. I recall trying to read the Maven manual, but both the manual and the concepts were incomprehensible -- there's so much automagic, when things break, it's difficult to even come up with a hypothesis of what might be going wrong. (And anyone who has any experience with any build system knows that the build always breaks.)

I usually just use Ant. It's a bit of a pain shuttling jar's around (symlinks help), but at least I can understand the build.

3. Part of the problem is that I don't want this alphabet soup of technologies. If I'm running in Python, and I'm developing a prototype or a one-off hack, I just write a file called whatever.py. (I can "import json" in whatever.py if I don't want to use hacks like eval()/repr() or copy-and-paste for parsing/serializing.)

I want to be able to build a quick one-file prototype to process my XML, without enabling the "Java EE 6 web profile" (whatever that is) and writing a Maven build file. I want using XML to be this simple:

  sudo apt-get install default-jdk
  javac Whatever.java && java Whatever
And Java's XML handling just isn't that simple, whereas Python's JSON handling is.
Re:Ten predictions (2004) by fusiongyro on Friday February 15, 2013 @03:31PM (#5228430)
1. The Java EE 6 Tutorial is a good place to start for these things.

2. You may not like Maven--I hate it too--but it's how things are done. In practice the only people complaining about installing libraries and managing jar dependencies are people using ant without ivy. 90% of folks just use Maven and get on with it.

3. You're turning your complaint from "Java's XML support is weak" to "Java's XML support isn't Pythonic like Python's." This is a weak argument. You're saying you want to live the Python dream in Javaland. Well, it isn't going to happen, no matter what the Play guys tell you. But if you have to use Java--and sometimes you do--adding four lines to your maven config--which you will have--so you can use EE 6 or JAXB is not a big deal, and neither is putting a few annotations on a class.

I don't love Java. In fact I dislike it. I would rather be using Haskell, Python, or Ruby. Or any number of other things. But you can't be mad at Java for being Java and not Python.

Re:Ten predictions (2004) by Anderkent on Friday February 15, 2013 @03:31PM (#5228426)
> I want to pin versions of dependencies (and dependencies-of-dependencies) so my builds are repeatable

That's by default in maven - you have to do something really stupid to get non-repeatable builds (usually involves specifying open version ranges or some weird plugin magic)

>everyone who's forked my git repo can still build the code if the Maven URL's for the deps have gone out of business

One of the main advantages of maven is just the opposite of that - you don't have to bundle your dependencies and get them to other people - they can just ask maven to fetch them. And maven is not going away.

Re:Ten predictions (2004) by EdiX on Saturday February 16, 2013 @01:34PM (#5232437)
> That's by default in maven - you have to do something really stupid to get non-repeatable builds

I think they changed it now but for years the default behaviour was to get the latest versions of every plugin, making builds non-repeatable by default.

Re:Ten predictions (2004) by Yhippa on Friday February 15, 2013 @02:44PM (#5228067)
Re:Ten predictions (2004) by androidexample on Sunday February 24, 2013 @04:40PM (#5276029)
Camera Photo Capture And Show Captured Photo On Activity

<http://androidexample.com/Camera_Photo_Capture_And_Show_Capt...

Re:Ten predictions (2004) by samspot on Friday February 15, 2013 @04:23PM (#5228767)
The appeal of JSON isn't that it is shorter, but that it is easier. Easy to read, easy to type, easy to parse. XML may be easy "enough", but I'll choose JSON anytime I don't need the extra things that xml offers. The verbosity of XML may sometimes be necessary, but it just isn't very much fun to work with.
Re:Ten predictions (2004) by gutnor on Friday February 15, 2013 @01:10PM (#5227468)
You are a bit outdated, tooling is a bit better nowadays.

Java integrates everything you need to parse and generate XML. Most API are XSD driven (either through annotation in the code, or with the mapping code generated from the XSD), so you get plenty of types like data, int, ... You also get streaming parser (pull or push) and DOM.

Obviously, that is no longer plain XML, that is XML + XSD + Namespaces.

The J2SE (not JEE) also has built-in support to expose and consume webservices, without requiring to worrying about WSDL and the rest.

At the end of the day, that does not mean that dealing with XML is a great experience. Most real life XML is awful. And well although the basic tooling is there, that is in the usual java fashion with factories of factory of creator of generator and very little "high level" utility.

Re:Ten predictions (2004) by Roboprog on Saturday February 16, 2013 @02:28AM (#5230765)
Somehow, that doesn't sound like an easy way to serialize and/or store a simple list of name-value pairs.

The S stands for simple... <<Sob>>

Re:Ten predictions (2004) by ramses0 on Friday February 15, 2013 @12:00PM (#5227081)
XML has a few issues compared to JSON:

* attributes v. tagnames

* no "anonymous list"

* infinitely large surface area

[ {name: joe, age: 12 }, {name: bob, age: 23} ]

<list><user><name>joe</name><age>12</age></user><user><name>bob</name><age>23</age></user></list>

The access pattern for json is much easier: obj[1].name

The infinitely large surface area of XML is painful.

Namespaces, entities, xsd/schema, cdata, cdata-in-cdata.

It's an alright data / interchange format and especially suited to certain multi-vendor use cases, but the disadvantages cost more than the benefits compared to "simple" anonymous json.

Re:Ten predictions (2004) by jodrellblank on Friday February 15, 2013 @05:37PM (#5229116)

  <user name='joe' age='12' />
Re:Ten predictions (2004) by huherto on Friday February 15, 2013 @06:41PM (#5229472)
What about bob?
Re:Ten predictions (2004) by jodrellblank on Friday February 15, 2013 @09:55PM (#5230140)
I'm sure you're capable of filling in the pattern with <user name='bob' age='23' /> yourself.

I wasn't trying to show XML is as compact as JSON, only that it can be more compact than the claim "it's so verbose" made it look.

Re:Ten predictions (2004) by coldtea on Saturday February 16, 2013 @03:05PM (#5232785)
Yes. And then you have to find a way to parse that.

JSON always comes with ready made parsing.

Re:Ten predictions (2004) by ncote on Saturday February 16, 2013 @01:13AM (#5230606)
Man, that was funny!
Re:Ten predictions (2004) by mattmanser on Saturday February 16, 2013 @06:35AM (#5231188)

    {'users': [{'name': 'joe', 'age': '12' }, {'name': 'bob', 'age': '23'}]}
    <users><user name='joe' age='12' /><user name='bob' age='23' /></users>
Re:Ten predictions (2004) by ramses0 on Tuesday February 19, 2013 @03:50PM (#5246960)
Yeah, that's cool and all, but I avoided using XML with attributes because attributes can't / don't nest.

{ name: 'joe', dob: { m: 1, d: 2, y: 1934 } }

<user name='joe' dob='...???...'>

<user><name>joe</name><dob><m>1</m><d>2</d><y>1934</y></dob></user>

I actually wasn't trying to make the "XML is bigger" joke because that isn't what's important to me. Structurally XML is harder to use.

Re:Ten predictions (2004) by FlyingAvatar on Sunday February 17, 2013 @09:35AM (#5235295)
Not to be pedantic, but:

    {users: [{name: 'joe', age: 12}, {name: 'bob', age: 23}]}
    <users><user name='joe' age='12' /><user name='bob' age='23' /></users>
Re:Ten predictions (2004) by seanalltogether on Friday February 15, 2013 @12:03PM (#5227095)
XML has the capacity of being as simple as you want it to be

Unfortunately in practice it never is. I've seen programmers do too many dumb things with data structures in XML, which then becomes "part of the spec" so it never goes away.

Take an xml api in a fortune 500 and run it through 10 developers over the course of 5 years, then do the same thing with a json api, I guarantee you the json one will be more standardized and easier to consume.

Re:Ten predictions (2004) by ams6110 on Friday February 15, 2013 @10:43PM (#5230283)
Guarantee? Do you actually know how "enterprise" projects work?
Re:Ten predictions (2004) by seanalltogether on Friday February 15, 2013 @11:58PM (#5230453)
bank of america, t. rowe price, wall st on demand, ebay, aflac, adobe, ge, nielson, navy federal...do you want me to open my entire client archive? You should see what java devs try to shove into xml structures.
Re:Ten predictions (2004) by ripter on Friday February 15, 2013 @11:58AM (#5227066)
I don't understand the complant that JSON doesn't support a date/time format.

It supports numbers and strings. You can use unix timestamps, you can use ISO 8601, you can use any format that makes sense for your application.

JSON doesn't support a Date/Time object because it's a data format. XML doesn't support a Date/Time object either.

Now if you want to complain that the JSON parsers don't automatically convert ISO 8601 dates into Date/Time objects, I understand.

To me 50% less bullshit means 50% less typing and maybe getting something wrong. JSON is easy to read and write by hand, which happens a lot.

XPath/XQuery and XSLT are nightmares in my opinion. I'd much rather type `Foo.bar` or `_.each(Foo.items, function(item) {...})` and be able to easily debug when something goes wrong.

Re:Ten predictions (2004) by emn13 on Friday February 15, 2013 @07:08PM (#5229612)
Right, but xml "objects" are annotated with some name, whereas json nodes aren't. This is a hassle, but it's also very convenient when you want to represent something that doesn't map 100% perfectly onto the underlying structure. So as you say, you _could_ represent a date in lots of different ways. In xml that's doable, and somewhat comprehensible. In JSON it's usually jibberish. And that's just dates - good luck with anything more complex.

I still think JSON is a more promising format in the long run. But it certainly isn't great - it's just bad in a different way, and somewhat more minimalist (which is good).

Also, I can't for the life of me understand why someone would dislike xpath. It's like the one best thing about xml - it's simple, concise, and easy to read. I'd absolutely love an xpath equivalent for json, which just doesn't exist.

Just expressing obvious things like "person[name='bla']/nickname" is so much more wordy in an explicit function style. And notice how the rest of the world - including most major js(on) libs have long gravitated towards that (monadic) style of querying - it's not just me, almost everyone prefers it. CSS; SQL; jquery selectors; even a filesystem glob - every complex datastore gravitates to some variant of the same pattern, and it's something json consuming libs do not yet do very well. I'm sure they will someday - but it's a real lack right now.

Re:Ten predictions (2004) by corresation on Saturday February 16, 2013 @09:04AM (#5231485)
JSON doesn't support a Date/Time object because it's a data format. XML doesn't support a Date/Time object either.

XML doesn't support objects, but there was enough thought put into the implementation that it has an easy way to document and define the types, with validated ways of representation. ISO 8601 for the xsd:dateTime, for instance. There is no ambiguity or uncertainty, no hand-rolled varieties of crazy, quite unlike JSON world where there are a hundred ways to represent a date or date/time, all of them broken in some way or other.

Re:Ten predictions (2004) by reginaldo on Friday February 15, 2013 @11:51AM (#5227037)
I think the 50% less bulshit figure is pretty generous. Let's not forget that, unless you opt out of it, most XML parsers, when given user-generated input, will do lots of crazy stuff. In the best case scenario, the machine that parsed the input will fall victim to DoS. In the worst, we have good old remote code execution. Tipically, an attacker will be able to read lots of files from the servers and make arbitrary network connections, many times from the viewpoint of a machine inside a corporate firewall. As a spare-time security researcher, let's say I absolutely love XML. As a developer, I despise it.
Re:Ten predictions (2004) by reginaldo on Friday February 15, 2013 @12:08PM (#5227128)
corresation: I can't answer your post directly, so I'll answer my own. It's absolutely not vague handwaving. HTML or JSON parsers can't make arbitrary network connections. XML parsers often can.

XML remains the lingua franca or most enterprise systems and interchanges (meaning the ones that people are most interested in trying to compromise

That is one of the reasons attackers are so happy. They are not trying to compromise. They are succeeding. Show me a SOAP/XMLRPC web service and I will show you a compromised machine, with very high probability.

See, for instance, last year's BlackHat presentation about SAP. Root with 1 request. Granted, there was an overflow involved, but the entry point was XML. Many more instances of this are available (I've compromised tens of systems in the last six months through the "magic" of XXEs, but unfortunately can't talk about them).

http://media.blackhat.com/bh-us-12/Briefings/Polyakov/BH_US_...

Re:Ten predictions (2004) by corresation on Friday February 15, 2013 @11:54AM (#5227053)
I'm sorry, but the vague handwaving about security issues with XML is utter nonsense. There have been issues, just as there have been issues with JSON, HTML, or any other parsed or shared content. Alluding to some vast chasm of danger is absurd, made especially obvious that XML remains the lingua franca or most enterprise systems and interchanges (meaning the ones that people are most interested in trying to compromise).
Re:Ten predictions (2004) by jgalt212 on Saturday February 16, 2013 @10:37AM (#5231742)
XML is good when the structure of the data returned is not self-evident to the data requester. In this case XML's verbosity assists in hand walking the tree to grok what the server is returning.

XLST is a friggin nightmare to code and I can't think of any reason why one would want to use it. It's much better to first parse the XML and then reshape to your needs rather than trying to do both at the same which XSLT does. In short, XSLT violates separation of conerns. Furthermore, if you think XML is hard to read, just try reading someone else's XL

Re:Ten predictions (2004) by EdiX on Saturday February 16, 2013 @01:11PM (#5232364)
> I don't get this. XML has the capacity of being as simple as you want it to be. You don't need schemas, namespaces, xpath

XML data model (trees with attributed nodes and special kinds of leaves) is not native to any language: XPath/XQuery and XSLT exist to bridge the alien world of XML to regular programming languages. Taking them out doesn't make XML simpler.

JSON doesn't have them because it can be represented with maps and lists, object types fundamental to many programming languages (it practically maps almost exactly to every scripting language created in the last 20 years). That's why it doesn't have, and doesn't need, XPath or XSLT equivalents. And that's also why it feels more natural to most programmers (ie. 50% less bullshit).

You could build a stronger case for the need of schemas and namespaces but IMHO that's actually bullshit, even in XML. But you can ignore them in XML too, as you noted, so it doesn't really matter.

Re:Ten predictions (2004) by edu222 on Friday February 15, 2013 @10:00AM (#5226436)
Have you tried Django's ORM? From what I understand its not perfect, but for the most part it really rocks.
Re:Ten predictions (2004) by hcarvalhoalves on Friday February 15, 2013 @01:17PM (#5227502)
I've been working with Django for 5 years, and I would say Django's ORM is pretty pedestrian, when not downright painful. It fails at simple things like allowing you to GROUP BY without falling back to SQL.
Re:Ten predictions (2004) by amatix on Friday February 15, 2013 @02:11PM (#5227855)
That used to be the case, it's much better now: see QuerySet.annotate() and QuerySet.aggregate()
Re:Ten predictions (2004) by hcarvalhoalves on Friday February 15, 2013 @02:34PM (#5228017)
I'm aware. These features are not replacement for GROUP BY.
Re:Ten predictions (2004) by mseebach on Friday February 15, 2013 @07:00AM (#5225727)
3: He explicitly mentions message passing and multi-process as opposed to multi-threaded, and that's dead on right. F#, Clojure, Scala, Erlang and Node are all approaches to concurrency that doesn't involve the developer dealing with threads.
Re:Ten predictions (2004) by namdnay on Friday February 15, 2013 @08:15AM (#5225956)
And in the enterprise world, everything is managed in the Spring/JMS parts, which handle all the multithreaded stuff for you.
Re:Ten predictions (2004) by banachtarski on Friday February 15, 2013 @02:10PM (#5227851)
+1. I thought that prediction was the most impressive one on the list.
Re:Ten predictions (2004) by emn13 on Friday February 15, 2013 @07:09PM (#5229623)
me too :-).
Re:Ten predictions (2004) by dools on Friday February 15, 2013 @06:22AM (#5225613)
2. Someone will make a lot of money by hosting open-source web applications. Github is cool but with all the cheapskate web devs (no offense, I am one of them) I don't think it is _that_ profitable.

I think he means more like wordpress.com, WPEngine and those ilk. Those are currently the most lucrative, but there are other examples of businesses monetising open source by hosting it.

Re:Ten predictions (2004) by johndavidback on Friday February 15, 2013 @07:32AM (#5225820)
I think more specifically he means things like Heroku or Modulus.
Re:Ten predictions (2004) by leoedin on Friday February 15, 2013 @08:09AM (#5225932)
I'm not sure if that's what he means. The discussion of the point specifically mentions applications like bug trackers and wikis - not software that tends to be developed in house. Heroku is generally used for hosting applications that you wrote, rather than for hosting open source stacks developed by others (e.g. phpBB or MediaWiki).

Saying that, it all falls under the general trend of providing system administration as a service. Given how much ongoing effort is required to maintain secure, up to date and efficient servers, this is probably a good thing.

Re:Ten predictions (2004) by johndavidback on Friday February 15, 2013 @08:54AM (#5226126)
That's very true, good point. I that this was a case of being mostly right and not realizing just how right he is in certain respects:

> most small development shops would pay a monthly fee not to have to administer the apps themselves.

and

> But would an external dev team trust some big company like Amazon with with their intellectual property?

and

> So I predict that someone will come along and offer an innovation hosting service, and make a lot of money off it.

OP had his finger on the pulse of tech, though, that much is certain.

Re:Ten predictions (2004) by JoblessWonder on Friday February 15, 2013 @11:43AM (#5226998)
I agree. And I think more and more open source web applications are using SaaS "supported" versions in addition to their open source/privately hosted options. I think this prediction is pretty spot on as well.
Re:Ten predictions (2004) by friendly_chap on Friday February 15, 2013 @06:23AM (#5225621)
That's right, much clearer now. And yes, there is indeed shitload of money in that market.
Re:Ten predictions (2004) by ghshephard on Friday February 15, 2013 @06:16AM (#5225596)
"6. A new internet community-hangout will appear. One that you and I will frequent. This is such a vague prediction does not even worth mentioning."

This is one he nailed - Facebook.

Re:Ten predictions (2004) by codeulike on Friday February 15, 2013 @07:33AM (#5225824)
Yeah it may seem obvious to us now that there is one major social network where people use their real names and the total user base approaching 1 billion, but that was not at all obvious in 2004.
Re:Ten predictions (2004) by ricardobeat on Friday February 15, 2013 @02:00PM (#5227788)
I thought of Reddit. People don't really "hang out" on facebook, and it's more about friends and family, not communities.
Re:Ten predictions (2004) by ghshephard on Friday February 15, 2013 @04:12PM (#5228713)
Most people have never heard of Reddit. Facebook is a global community that everyone has heard of. And, trust me, while people like you and I might hang out on HN/Reddit - most of the rest of the planet spends so much time on Facebook that they don't even use email any more. Conferencing, chatting, socializing is all done on FB.
Re:Ten predictions (2004) by Wilya on Friday February 15, 2013 @06:34AM (#5225656)
You could repeat the same prediction every year, and you'd probably be right everytime.
Re:Ten predictions (2004) by rmc on Friday February 15, 2013 @06:47AM (#5225689)
Nah, mainstream social networks are new.
Re:Ten predictions (2004) by unalone on Friday February 15, 2013 @07:24AM (#5225803)
Yeah, if you're living a decade ago. By 2005, MySpace was such a big deal that if you were a student without one, you'd feel like you were missing out on something important socially, and by 2008, Facebook had pretty much everybody, including grandparents, as a user. Nowadays the center is shifting again, and most of the people I know have started using Tumblr as their social locus, but it probably won't overtake FB. I'd predict something new coming up in the next year or two that ends up overtaking Facebook in market share, but its approach will have to be highly insightful and unusual, nothing like what I've seen yet online. (Path comes the closest, but Path's reliance on smartphones kills their audience; I still have friends without smartphones and I'd never use a platform that shuts out friends for their consumer decisions.)
Re:Ten predictions (2004) by graue on Friday February 15, 2013 @01:40PM (#5227654)
> by 2008, Facebook had pretty much everybody, including grandparents, as a user.

Not in my circles... Facebook didn't even begin to pop up on my radar until 2009. Social media adoption is extremely dependent on where you live and what type of people you know. Generalizations based on personal observation are invariably going to be wrong.

To add some actual data to this: in February 2009, Facebook had recently surpassed 175 million users[1]. It's now got a billion. So 2008 is definitely too early to place your "pretty much everybody" statement.

[1] http://www.insidefacebook.com/2009/02/14/facebook-surpasses-...

Re:Ten predictions (2004) by KaoruAoiShiho on Friday February 15, 2013 @08:59AM (#5226150)
Read the title, this is from 2004, which makes it incredibly prescient. Even Zuckerberg didn't realize what a big deal FB was in 2004.
Re:Ten predictions (2004) by nollidge on Friday February 15, 2013 @09:28AM (#5226283)
This was written in 2004.
Re:Ten predictions (2004) by mratzloff on Friday February 15, 2013 @10:04AM (#5226456)
Read the details of the prediction. It sounds to me like he's describing a post-apps API Facebook. Not in so many words; I doubt he was thinking along those exact lines. But his prediction doesn't cover MySpace or Twitter or other social sites quite as well, while he describes Facebook to a T.
Re:Ten predictions (2004) by dools on Friday February 15, 2013 @06:22AM (#5225618)
More like reddit, no? Or hacker news ;)
Re:Ten predictions (2004) by juan_juarez on Friday February 15, 2013 @10:34AM (#5226617)
I'm surprised that he missed MySpace which was active & growing at the time.
Re:Ten predictions (2004) by a_m0d on Friday February 15, 2013 @08:36AM (#5226049)
I was thinking more of StackOverflow as an answer to this one.
Re:Ten predictions (2004) by shric on Friday February 15, 2013 @08:35PM (#5229907)
Same, Steve Yegge doesn't use facebook.
Re:Ten predictions (2004) by ctdonath on Friday February 15, 2013 @11:04AM (#5226791)
1. XML databases will surpass relational databases in popularity by 2011. Yup, close enough insofar as the point was made but some of the names were changed and improvements applied.

2. Someone will make a lot of money by hosting open-source web applications. Ya know, he might be onto something there. In retrospect, it relies on fulfillment of #7.

3. Multi-threaded programming will fall out of favor by 2012. It's just too obvious a technique to not use. Alternatives may be cleaner, but not as clear. "Get it done" trumps "make all the pieces play in perfect harmony".

4. Java's "market share" on the JVM will drop below 50% by 2010. That assumed robust use of JVM. iOS & Android exploded onto the market, changing the landscape he was addressing.

5. Lisp will be in the top 10 most popular programming languages by 2010. Nope. But I assume he never expected Objective-C would be.

6. A new internet community-hangout will appear. One that you and I will frequent. Facebook. EVERYBODY is on Facebook. Wasn't so important that "you and I" use it, but that our mothers would.

7. The mobile/wireless/handheld market is still at least 5 years out. Odd that he was more predicting something not happening; we'll say he was right insofar as what constitutes "happened" is squishy and took a few years to get going, but wrong insofar as when it did happen it did so to a far greater degree than he expected. Half of the then-absurd snide "promises" he listed as others making have pretty much come true: HDTV pixel counts on a pocket device, LTE data rate 10x faster than T1, etc.

8. Someday I will voluntarily pay Google for one of their services. He couldn't grok what Google would be able to offer for free.

9. Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. Had to invent the smartphone and tablet markets to do so, but insofar as an iPhone 5 is on par with notebooks back then, we'll count this as a big win.

10. In five years' time, most programmers will still be average. More a tautology than anything. What's "average" is pretty friggin' capable given a cheap modern toolset. For $99 and a Mac darned near any competent idiot can whip up a practical app and have it available to the world in a few days, no need for mad skillz.

The thing about predictions is the difficulty of articulating how discoveries along the way will affect manifestation of the prediction. One may be right in the spirit of the prediction, but not the letter thereof.

Re:Ten predictions (2004) by slashclee on Friday February 15, 2013 @11:21AM (#5226891)
> Half of the then-absurd snide "promises" he listed as others making have pretty much come true: HDTV pixel counts on a pocket device, LTE data rate 10x faster than T1, etc.

Shame we still don't have microsecond latencies, though.

Re:Ten predictions (2004) by chetanahuja on Friday February 15, 2013 @02:12PM (#5227866)
and never will... at least on the "Internet" (as opposed to a controlled demo with all nodes fitting in a room).
Re:Ten predictions (2004) by jonaldomo on Friday February 15, 2013 @06:38AM (#5225665)
_that_ profitable???

The company I work for pays $250 a year for Github Enterprise per developer for about 400 developers... That is just one company. 100k/year! They are thinking about extending it to all 2,000 developers.

A few months ago they raised $100 million!

[deleted]
Re:Ten predictions (2004) by bazzargh on Friday February 15, 2013 @07:04AM (#5225744)
Source? According to Scott Chacon himself, it was profitable even back in 2010.

http://techcrunch.com/2010/07/24/github-one-million/

Or this: http://www.linuxuser.co.uk/news/github-gets-100-million-inve...

Announcing the investment on the GitHub blog, CEO Tom Preston-Warner admitted it wasn’t that they necessarily needed it: “Our company has been profitable for years, is growing fast, and doesn’t need money. So why bother? Because we want to be better. We want to build the best products.”

Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @07:33AM (#5225823)
Ah, sorry. I thought they were still in start-up mode. It does seem a bit early for them to be turning a profit; I hope they are investing enough.
Re:Ten predictions (2004) by nullymcnull on Friday February 15, 2013 @08:17AM (#5225965)
So, you were assuming that they weren't making a profit based on some sort of gut feeling that they were "still in start-up mode", but you used quite absolute language suggesting personal knowledge of the state of their books.
Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @09:12PM (#5230018)
Why the heck would GitHub take $100 million in investment and still push for earning a profit every quarter? Does it make any sense to you? Now you can see why I'm confused.
Re:Ten predictions (2004) by chc on Friday February 15, 2013 @09:53PM (#5230136)
The idea that taking investment automatically means you would actively forgo earning a profit is kinda odd. You take investment to grow, not because you have an allergy to profits.
Re:Ten predictions (2004) by seanmcdirmid on Friday February 15, 2013 @11:54PM (#5230445)
Not really. Say you take $100 million in finance, so you are now $100 million in debt and you are probably not going to put the money in the bank, but spend it. When you spend (invest) the money, that is taken away from earnings and you can spend more than you earn thanks to the financing. Even if the company's valuation goes up because of these investments, they are still taking a loss now. You have to take a hit now to grow and earn more later.

I'm not an accountant, and this is just my uninformed understanding.

Re:Ten predictions (2004) by chc on Saturday February 16, 2013 @12:29PM (#5232206)
> Say you take $100 million in finance, so you are now $100 million in debt

Venture capital is not a loan; it's a purchase of equity. You are not in debt after taking money.

Re:Ten predictions (2004) by seanmcdirmid on Saturday February 16, 2013 @05:18PM (#5233272)
You are right. But the $100m is not earnings either, and you have to spend it, so your balance sheet is still negative for awhile.
Re:Ten predictions (2004) by lukeman on Friday February 15, 2013 @10:07PM (#5230178)
I get the feeling we don't know why yet.
Re:Ten predictions (2004) by mcintyre1994 on Saturday February 16, 2013 @08:46AM (#5231452)
Surely that sort of investment is a bet on going public?
Re:Ten predictions (2004) by PakG1 on Friday February 15, 2013 @01:31PM (#5227599)
Github is cool but with all the cheapskate web devs (no offense, I am one of them) I don't think it is _that_ profitable.

It must be. Github raised 100m from investors led by Andreesen Horowitz in 2012. You don't get that kind of funding from that level of quality investors without a seriously good financial trajectory.

Re:Ten predictions (2004) by jliptzin on Saturday February 16, 2013 @12:34PM (#5232230)
Therefore, Andreesen Horowitz prefers not to make risky investments.
Re:Ten predictions (2004) by derefr on Friday February 15, 2013 @06:57AM (#5225719)
> 5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

I don't know about hard. I can now imagine a day where Clojure is the predominant JVM language--whereas if you told me five years ago a Lisp would be even as popular as Clojure is now, I would have scoffed.

Now, the by 2010 part is wrong, indeed. But I see these predictions as being more about acceleration than current velocity.

Re:Ten predictions (2004) by PommeDeTerre on Friday February 15, 2013 @08:05AM (#5225918)
I think you're overestimating the popularity of Clojure.

While it's not as totally obscure as many other Lisp, Scheme or Lisp-like language implementations, it's not very widely used at all. Its penetration is minimal, even compared to Scala (which has seen much more significant usage, but still pales in comparison to Java).

While Clojure is a step in a better direction, I don't think it's gaining traction all that quickly. There's a whole lot of existing Java and Scala code that would need to be completely discarded or ignored in order for Clojure's usage to be considered as having any impact.

Re:Ten predictions (2004) by wwwtyro on Friday February 15, 2013 @06:14AM (#5225586)
2. "hosting open-source web applications" does not really describe GitHub

3. He's not talking about using multiple cores, he's talking about using multiple threads vs (for example) multiple processes.

6. Reddit, Hacker News

Re:Ten predictions (2004) by friendly_chap on Friday February 15, 2013 @06:18AM (#5225599)
2. I think github is the most notable example.

3. Gotta reread that.

6. Oh come on, facebook, youporn, whatever. As I said, too vague.

Re:Ten predictions (2004) by ImprovedSilence on Friday February 15, 2013 @10:54AM (#5226735)
>> 6. Oh come on, facebook, youporn, whatever. As I said, too vague.

Yeah, so he didn't call out a specific "type" of socializing, or draw up the wireframe for facebook here. But he just recognized there is a huge trend of people wanting to share their lives and communicate in near real time. I think he nailed it. Facebook and twiiter are just that. Even look at his move example. These days, you watch you movie or TV show, then laugh and comment on it with your friends not in the theater, but on facebook or twitter. I'd say he NAILED that prediction.

Re:Ten predictions (2004) by doomlaser on Friday February 15, 2013 @11:18AM (#5226863)
Facebook already existed with over a million users when he wrote this.
Re:Ten predictions (2004) by ImprovedSilence on Friday February 15, 2013 @01:02PM (#5227421)
Perhaps, but they were all in college, it was a very different FB. This article was written my sophomore year of college, and I hadn't even had a FB account yet.
Re:Ten predictions (2004) by mseebach on Friday February 15, 2013 @06:56AM (#5225716)
Github is not an open source webapp. It's a closed source web app that hosts other people's open source apps (web and not).
Re:Ten predictions (2004) by Noxchi on Friday February 15, 2013 @09:14AM (#5226209)
Github hosts git repositories.

Git is open source.

Re:Ten predictions (2004) by mseebach on Friday February 15, 2013 @01:09PM (#5227460)
Github does a metric f%ckton more than hosting git repositories.
Re:Ten predictions (2004) by CodeCube on Friday February 15, 2013 @08:12AM (#5225943)
I think for #1, there are a number of hosting providers that match this description, such as Dreamhost, that offer a number of open source web apps that you can install with a single click. They manage them, upgrade them, back them up ... all you gotta do is pay them.

That being said, GitHub does indeed match the description, though I think people are thinking about the code they are hosting for other people ... but I think where they fit the description is with the fact that they are hosting Git for you (and making some money through enterprise services).

Re:Ten predictions (2004) by dspillett on Friday February 15, 2013 @07:21AM (#5225796)
3. Multi-threaded programming will fall out of favor by 2012. Not really. We are already in the multicore age, and it will only get moreticore.

A lot of things server-side are moving back towards multiple processes rather than threading, driven by "cloud" based scaling: if you code is designed to handle being spread over many nodes then why complicate things by having two concurrency models on the go at once (threads at host level, multiple processes spread over the hosts)?

8. Someday I will voluntarily pay Google for one of their services. You don't say? They are one of the biggest players out there, even if they are not primarily known for payware but still.

While most individuals just use the free service level, you can pay for the use and support of Google Docs and some groups do. Same with Google Drive: while many won't need more than the free 5Gb it costs per month for more than that (if you are using it to store music and video 5Gb isn't hard to fill).

10. In five years' time, most programmers will still be average. This makes no sense, but anyway, we are getting better. Slowly though, version control, more languages, testing is infiltrating even some dumber dev companies too.

It makes perfect sense in a pointless way: most of everyone are average at everything. As people get better/worse the average shuffles around too. If he is talking about following best (or at least good) practises I can tell you thre are a lot of average people out there despite the tools avaliable to make it easier to do things right.

Re:Ten predictions (2004) by zanny on Friday February 15, 2013 @06:27PM (#5229387)
> (threads at host level, multiple processes spread over the hosts)

Concurrent programming isn't all "jump off a cliff into the atomic<T> and mutex lock sea and worry about deadlock or run everything in serial".

There is a middle ground where you take apart the easily discretized parts of your task at hand, that have little or no communication between them, and thread those. For example, if you have a system to scrape a user profile, processing the personal information, hobbies, and pictures in separate threads only requires sending work to threads in a thread pool saying scrape X. That X gets scraped, database calls are asynchronous and work up to the thousands of workers, and you don't even need to wait - pass off the profile, let the threads run and wait for a new connection.

Threaded parallelism only becomes dangerous when you start using shared data. That is where you need to ask if its worth the cost. You shouldn't be afraid of threading entirely just because you can back yourself into deadlock hell if you don't plan ahead.

Re:Ten predictions (2004) by dspillett on Tuesday February 19, 2013 @11:27AM (#5245116)
I wasn't meaning to suggest it was (or should be) considered dangerous: just that supporting two concurrency models it that same time is a complication many would prefer not to bother with unless their application really needs the efficiency boost threading may offer within a single process on a single node. Unless you can justify working with both due to some measurable and significant efficiency gain or don't need multi-host scaling you go with the option you have to have (multiple processes).

Supporting both (multiple processes for multi-host scalability, threads for speeding up CPU intensive operations and such) might not be much more hassle, but it is at least some more hassle.

Re:Ten predictions (2004) by jonpeda on Saturday February 16, 2013 @06:51PM (#5233581)
When people complain about threading, they are thinking about shared-mutable-state threading.

Obviously we will never have single-threaded systems, they would be blocking all the time.

Re:Ten predictions (2004) by f1codz on Friday February 15, 2013 @06:33AM (#5225651)
> Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

On contrary, for me this one was one of the strongest predictions. In my opinion, predictions should be taken in spirit and not by letter. Looking at the rise of Clojure, i dare say that was a great foresight.

Re:Ten predictions (2004) by coldtea on Saturday February 16, 2013 @02:54PM (#5232741)
>2. Someone will make a lot of money by hosting open-source web applications. Github is cool but with all the cheapskate web devs (no offense, I am one of them) I don't think it is _that_ profitable.

Err, that prediction talks about something like Amazon AWS and Heroku, which very much happened. Not about hosting open source CODE.

>3. Multi-threaded programming will fall out of favor by 2012. Not really. We are already in the multicore age, and it will only get moreticore.

Nope. Multi-threaded programming he talks about has long fallen out of favor. Multicore programming in 2013 is all about message passing, STM et al --where threads are hidden from the programmer.

>5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

If you count Clojure, it didn't fail that bad. But the general trend towards functional programming and its concepts means that the prediction sort of have been proven true, despite Lisp not being the language that brought it.

>6. A new internet community-hangout will appear. One that you and I will frequent. This is such a vague prediction does not even worth mentioning.

Are you kidding me? This is all about Facebook, before there was facebook.

>7. The mobile/wireless/handheld market is still at least 5 years out. Happened sooner.

Well, the iPhone appeared on 2007, so not that much sooner. And he is correct that the whole market exploded a little afterwards (the first iPhone wasn't even 3G, remember?).

>9. Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. No way, thanks God.

Actually not that off. Especially if you include the iPad: http://photos.appleinsider.com/deutsche-120206.jpg

And even without it, Apple has 1) that exact share of profits (of all those others combined), 2) that share of the high-end (> $1000) market.

>10. In five years' time, most programmers will still be average. This makes no sense

Makes no sense? If anything it's an absolutely true tautological statement, mathematically speaking.

Re:Ten predictions (2004) by jimbokun on Friday February 15, 2013 @10:44AM (#5226678)
"9. Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. No way, thanks God."

iPad.

Re:Ten predictions (2004) by dsrguru on Friday February 15, 2013 @09:37AM (#5226318)
> 5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

Not according to http://visual.ly/most-popular-programming-languages-2013. Clojure alone is in 10th place for code submitted to codeeval.com in 2013.

Edit: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... appears less focused on web development and startups (it puts VB ahead of Ruby and leaves Clojure and Scala out completely) and even this ranking puts Lisp (presumably CL) at #13 overall.

Re:Ten predictions (2004) by megablast on Friday February 15, 2013 @07:38AM (#5225840)
> 9. Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. No way, thanks God.

If you count laptop+tablet sales, it may be close.

Re:Ten predictions (2004) by sedev on Saturday February 16, 2013 @02:04AM (#5230709)
If you count laptop plus tablet sales and measure by profit share, it's not remotely close: Apple obliterates its competitors by that measure.
Re:Ten predictions (2004) by dudurocha on Friday February 15, 2013 @08:54AM (#5226125)
In #2 isn't he describing wordpress.com? You see, wordpress is a open source plataform, but people pay money to have their blogs on it.
Re:Ten predictions (2004) by jodrellblank on Friday February 15, 2013 @06:24PM (#5229366)
But he said "a lot of money". Maybe http://wpengine.com/ instead?
Re:Ten predictions (2004) by T-hawk on Friday February 15, 2013 @02:05PM (#5227820)
> 3. Multi-threaded programming will fall out of favor by 2012. Not really. We are already in the multicore age, and it will only get moreticore.

What that prediction missed was that Moore's Law finally broke down for single-threaded performance. Single cores got only about 3x faster from 2004 to today, rather than continuing the historical trend with four more doublings. Moore's Law is alive and well but now requires parallel architecture to exploit. But you can't blame an armchair pundit for missing this one. The 3 GHz clock speed barrier was hardly something a layman could have predicted; it's an artifact of extremely sophisticated manufacturing processes and infinitesimally detailed subatomic physics. A layman couldn't have said whether the physical limits of clock speed would be reached at 1 GHz or 100 GHz and in 2005 or 2025.

> 6. A new internet community-hangout will appear. One that you and I will frequent.

This succeeded way more than anyone thought. More than "you and I", our moms and grandparents even hang out there. It is Facebook.

Re:Ten predictions (2004) by jodrellblank on Friday February 15, 2013 @06:16PM (#5229317)
Here's a 6.6Ghz overclock: http://www.custompcreview.com/news/intel-core-i7-3770k-overc... with liquid Nitrogen cooling.

So how much is it a room-temperature a physical limit, and how much an economic limit?

Re:Ten predictions (2004) by dspeyer on Friday February 15, 2013 @06:51PM (#5229530)
We're not that far from the speed of light barrier. There's a fixed amount of time it takes for any information to get from one end of a chip to the other and back. Only shrinking the die will decrease that.
Re:Ten predictions (2004) by jimbokun on Friday February 15, 2013 @10:43AM (#5226673)
"7. The mobile/wireless/handheld market is still at least 5 years out. Happened sooner."

It happened June 29, 2007.

http://en.wikipedia.org/wiki/IPhone

Re:Ten predictions (2004) by jimbokun on Friday February 15, 2013 @10:50AM (#5226720)
"5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard."

Tiobe has "Lisp" ranked 13, not clear what they included as "Lisp". (Specific Lisps like Scheme, Common Lisp, and Clojure rank much lower, so must be some kind of aggregate.)

http://www.tiobe.com/index.php/content/paperinfo/tpci/index....

Interestingly, the "Very Long Term History" table has Lisp going from rank 20 in 2008 to 13 in 2012. So Yegge clearly missed his top 10 prediction, but may have been on to something in regard to Lisp increasing in popularity (depending on how much credence you give Tiobe rankings, of course).

Re:Ten predictions (2004) by lkrubner on Friday February 15, 2013 @11:12AM (#5226833)
You are perhaps aware that the Death Of Lisp happened in between the first date and the current date? The Golden Age Of Lisp was during the 1970s and 1980s when the USA Defense Department put substantial funds into AI research, and the favored language for AI research was Lisp. And, to a degree, the Lisp community became dependent on that money. If you look up some of the famous companies that put together Lisp-oriented machines circa 1980, there was the clear assumption that money from the Defense Department would continue forever. However, Communism collapsed in 1989 and from the Reagan build-up of the 1980s to the demobilization under Clinton in the 1990s, the USA spending on the military shifted from almost 9% of GDP to roughly 4% of GDP. There were cutbacks in research spending. And this lead to the Great Death Of Lisp.

However, good ideas are resilient even if the face of death. People such as Paul Graham kept the flame alive. People like Rich Hickey brought it into the modern age. There is no question that Lisp is on the comeback trail.

There is also, of course, the broader victory of Lisp: the impact it has had on all other languages. Paul Graham wrote about that here:

http://www.paulgraham.com/diff.html

Re:Ten predictions (2004) by Nursie on Friday February 15, 2013 @06:21AM (#5225612)
The XML things is quite amusing, given how far out of favour XML went. XML has now failed hard AFAICT.

But I can agree the spirit of the prediction lives on in the form NoSQL and JSON.

Re:Ten predictions (2004) by jiggy2011 on Friday February 15, 2013 @07:46AM (#5225859)
Has it failed? Or have people just stopped trying to shoehorn it everywhere?

There are cases where XML is a great format. For example in the past I wrote a system for interfacing with a government department.

The thing was an epic of about 30 different schemas, however being able to actually look at a concrete schema for specification and actually be able to test against it was invaluable.

Trying to build that thing with JSON would have driven me to tears.

Re:Ten predictions (2004) by Nursie on Friday February 15, 2013 @08:41AM (#5226062)
Well, perhaps it's not fair to say XML itself has failed, but the idea of XML as the data format to end all data formats seems to have fallen flat on its arse.

I too like the ability to validate XML against a schema and found it invaluable when dealing with a set of (needlessly) complex ant-plugins a couple of years back.

Re:Ten predictions (2004) by Ingaz on Saturday February 16, 2013 @05:58AM (#5231141)
XML is not about "<" and ">" everywhere.

XML, JSON, MUMPS are semantically equivalent.

Re:Ten predictions (2004) by jonpeda on Saturday February 16, 2013 @06:53PM (#5233592)
XML is far more structured than JSON.
Re:Ten predictions (2004) by Ingaz on Thursday February 21, 2013 @03:35AM (#5256199)
Yes.

But in fact: you add javascript - you have all strictness and structure of XML.

Re:Ten predictions (2004) by ville on Saturday February 16, 2013 @07:59AM (#5231336)
> 5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

It peaked[1] in 2010 and is now settled on the 13th place, so I got to give him some credit for this prediction. If you include other dialects including newcomers such as Clojure, we might be talking at least close to the 10th most popular.

[1]: http://www.tiobe.com/index.php/paperinfo/tpci/Lisp.html

Re:Ten predictions (2004) by baak on Friday February 15, 2013 @09:38AM (#5226330)
JSON Databases have passed relational in popularity? I don't know that I believe that.

Anyone know if there's a NoSQL/SQL market share comparison out there?

Re:Ten predictions (2004) by johnward on Friday February 15, 2013 @09:41AM (#5226344)
They are becoming popular but there is no way they surpass relational databases in use.
Re:Ten predictions (2004) by randomdata on Friday February 15, 2013 @11:16AM (#5226851)
That brings up an interesting question of where the line of what is a database gets drawn. Does a JSON interface to a CRUD application that uses a relational database behind the scenes count as a JSON database? A part of me thinks it should. CouchDB positioned itself with a JSON API that allowed you to skip the CRUD middleware, so from the API consuming point of view there is essentially no difference.
Re:Ten predictions (2004) by raylu on Friday February 15, 2013 @06:30PM (#5229419)
Re:Ten predictions (2004) by mattmanser on Saturday February 16, 2013 @06:29AM (#5231181)
I honestly can't believe this comment is all the way down here. What a bubble we live in sometimes.

I'd be surprised if it was much above 1%.

Re:Ten predictions (2004) by callmeed on Friday February 15, 2013 @12:03PM (#5227099)
>> 2. Someone will make a lot of money by hosting open-source web applications. Github is cool but with all the cheapskate web devs (no offense, I am one of them) I don't think it is _that_ profitable.

My initial thoughts on #2 were AWS and the PAAS companies (Heroku, EngineYard, etc.) but maybe they're to broad to fit. The people who mention WordPress have a good point.

Re:Ten predictions (2004) by ajross on Friday February 15, 2013 @11:10AM (#5226821)
Actually 4 is almost entirely backwards. He's saying that Java the language will be less popular than other JVM languages. That's not true at all. Obviously what actually happened is that the Sun/Oracle JVM dropped below 50% market share of "VMs that run Java", losing badly to Google's Dalvik. Java-the-language remains dominant on both, however.
Re:Ten predictions (2004) by nos4A2 on Friday February 15, 2013 @06:15AM (#5225592)
I think on point 2, he meant a hoster like heroku or AWS? On point 6, its reddit (BBS for this gen), point 8, google drive, android apps, play store etc, point 9, I think the iPad counts :)

Overall quite spot on i'd say..

Re:Ten predictions (2004) by huxley on Friday February 15, 2013 @12:25PM (#5227222)
9. I agree it's a miss but since then:

* Gateway was bought at a firesale price by Acer

* IBM sold off their PC business to Lenovo

* both Dell and HP have been in the doldrums in terms of PC/laptop sales and they both desperately have tried to milk the enterprise software and services business

Apple's total revenues come to about 69% of the combined revenue of HP, Dell, Acer and Lenovo ... so a miss since the iPhone/iPad have been what boosted Apple rather "laptops" per se (and certainly not to complete equality in revenues by 2010), but it's an interesting miss.

Re:Ten predictions (2004) by buzzkills on Friday February 15, 2013 @04:27PM (#5228786)
I'm sorry he got (1.) wrong. Let's be really generous and say that he means databases that aren't relational (which is totally different from XML database), even by that definition I'd argue that there aren't more people (developers) using Non relational over relational. How about end users, yes probably more users, but even in 2004 more people were using non-relation databases than relational (file systems, LDAP, Lotus Domino, VSAM, IMS, AD). So perhaps you could interpret surpass to mean 'better than', well that's just vague.
Re:Ten predictions (2004) by AdamFernandez on Friday February 15, 2013 @03:28PM (#5228408)
I believe number 6 accurately describes Facebook, which in November of 2004 may not have been on his radar as fulfilling this role.
Re:Ten predictions (2004) by kostya-kow on Friday February 15, 2013 @08:26AM (#5226006)
>5. Lisp will be in the top 10 most popular programming languages by 2010. This failed hard.

I don't think it did. Lisp itself didn't become popular, but a lot of functional ideas are being implemented in more mainstream programming languages, and some functional languages are also becoming popular.

Re:Ten predictions (2004) by pimeys on Saturday February 16, 2013 @06:32AM (#5231186)
I don't think Lisp is a functional language like Haskell is. It's more of a language with no paradigm. You can do objects, you can do pure functions, you can write your own language easily. And the mainstream languages, like Java, C#, Ruby, Python have also been mixing up different paradigms. You have some kind of lambdas, maybe even closures. They rely heavily on objects and having mutability everywhere is still too common.
Re:Ten predictions (2004) by dspeyer on Friday February 15, 2013 @06:57PM (#5229552)
> We got NoSQL (esp. JSON based ones) instead of XML. Close enough though.

NoSQL still stores tables, not trees (or at least the NoSQLs I've paid attention to do). That's the change he was predicting. You still need a tabular schema for your NoSQL database.

Re:Ten predictions (2004) by emn13 on Friday February 15, 2013 @07:19PM (#5229668)
Hmmm - not really. You're storing complex object(or document or xml or json). In other words, you're not using the db schema to destructure your model, but just using it to get at the bits you want.

It's close enough in essence.

Re:Ten predictions (2004) by Taylorious on Friday February 15, 2013 @11:59AM (#5227080)
@your answer to number 4

How do you see the market share dropping? There is this little thing called Android...

Re:Ten predictions (2004) by mstachowiak on Friday February 15, 2013 @11:21AM (#5226890)
Just for edification - regarding #2, GitHub is insanely profitable.
Re:Ten predictions (2004) by suyash on Saturday February 16, 2013 @01:49AM (#5230689)
@friendly_chap: No surprise considering how shit Java is.

You must be a shitty developer for hating on Java. Didn't you read thru the article about how useful and awesome Java is. The worlds top websites, mobile apps heavily run on Java and JVM.

Re:Ten predictions (2004) by martinced on Friday February 15, 2013 @02:57PM (#5228164)
9. Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010. No way, thanks God.

Well he wasn't that far.

The high-end laptop market is utterly dominated by Apple: already in 2007 they had more than 30% (growing by 8% from 2006) of the high-end laptop market and now they're at more than 50%. So their sales there exceed those of all the other players combined.

They're also the uncontested winner in the ultra-thin laptops market.

Granted, there's a market for IBM Thinkpads but you simply cannot say he was far off regarding is Apple laptops prediction.

Re:Ten predictions (2004) by dgudkov on Sunday February 17, 2013 @02:17PM (#5236299)
Premium products almost never dominate in global markets.