Live data from Hacker News

Ten predictions (2004)

sites.google.com

181–190 of 324 posts

Re: Ten predictions (2004)

#181

Earlier quoted context omitted.

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.

>> 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…

[deleted]

Re: Ten predictions (2004)

#182

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.…

Just for edification - regarding #2, GitHub is insanely profitable.

Re: Ten predictions (2004)

#183

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.…

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 jus…

> 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)

#184

Lisp will never be popular. Everyone likes to kiss the ass of Lisp, and talk about how transformative and powerful it is, then they go and write a bunch of Python or Ruby or Lua or Perl or anything other than Lisp, because infix is just much much more readable. When was the last time you went to a math class and the professor wasn't using infix notation? Even the Common Lisp Hyperspec has to resort to infix notation…

Clojure is a Lisp and has been rising in popularity. I don't know if it is in the top 10, but I wouldn't be shocked if it was in the next few years.

Re: Ten predictions (2004)

#185
post #117

Earlier quoted context omitted.

> 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}

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.

It's not my fault the definition of average is very narrow.

Re: Ten predictions (2004)

#186

On the Lisp thing, looking around the programming world in 2004, you didn't see proliferation of functional concepts like you do today. In those days, "functional" meant Lisp, at least popularly. I think the big lesson of Lisp has been disseminated, though, and that is that it is more productive to write code-that-writes-code. But I also think we learned a broader lesson that it's better to not pigeon-hole people dow…

To whom did 'functional' mean the same thing as 'lisp'?

I'm always astonished when people conflate these two things. Lisp encourages you to put the forms that evaluate to a value in the position you would otherwise put a variable that has been set to that value, sortof code in place. That is kindof like functional programming. However, lisp does not avoid side effects or mutability, in fact virtually all operators in lisp are either destructive or have a destructive equivalent. The destructive equivalents are there because if you are limited to the nondestructive versions only you can't implement lots of algorithms without doing a bunch of consing and copying. In lots of ways it is easier to implement a performant functional language if it is pure and without side effects, because you can make strong assumptions everywhere.

Lisp was much more interesting 10 or 20 years ago than it is today. Today, most languages have stolen most of the good parts of Lisp. Strong but dynamic typing (or the gross weak but dynamic typing), pass by reference only, generic data structures, garbage collection, first class functions, ability to introspect objects at runtime, and most other features it pioneered are just taken for granted in modern languages. What is left as an advantage is the lisp syntax, and advantages that come from that, such as data-as-code and therefore powerful macro systems. That is also the main disadvantage to lisp, as much as people will claim that eventually you can see through it, I have never seen anyone do math either on paper or on a whiteboard in anything but infix notation. There are infix and postfix calculators, but I have never seen a prefix calculator.

TLDR; Lisp isn't really that functional unless you use a restrictive and inefficient subset of the language.

Re: Ten predictions (2004)

#187

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 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 forma…

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)

#188

Lisp will never be popular. Everyone likes to kiss the ass of Lisp, and talk about how transformative and powerful it is, then they go and write a bunch of Python or Ruby or Lua or Perl or anything other than Lisp, because infix is just much much more readable. When was the last time you went to a math class and the professor wasn't using infix notation? Even the Common Lisp Hyperspec has to resort to infix notation…

I got a new job in December. This company mostly uses Ruby and PHP. I was given an assignment for which they scheduled 2 weeks. I wrote the whole thing in Clojure, my new favorite language. I got it done in 1 week (6 days). After I was done, I asked if it was okay if I used Clojure. The folks I work with had no problem with that. They asked were impressed with my speed, part of which I attribute to Clojure.

I am the first person in this company to use Clojure, (although there is a small team in London that now uses Scala, and there is an official goal to move toward JVM technologies). I use it because it lets me work very fast. I have spent many years writing Ruby and PHP. I used to use them because I thought they were fast, and Java was slow. But one's point of reference shapes one's preferences.

Let me put it like this: I started using PHP in 1999. At that time, I felt strongly that this was the easiest way to write web apps. Java was verbose. The Struts framework was monstrous to the point of being offensive. Perl was ugly. I had never heard of Ruby. I became an evangelist for PHP, trying to convince companies that its use would make web development much more pleasant and faster.

Later I did some Ruby On Rails development. I like this language, though I have never understood the smug sense of superiority of some Rails developers, especially in their attitude toward PHP. In my mind, these are 2 similar languages with slightly different strengths and weaknesses, but at roughly the same level of power.

PHP was for a long time a Wild West of development. Every developer built their own CMS and then used it for everything. At some point after 2006, this changed. Ruby On Rails was a huge influence. By 2008, the only jobs I could find, for either Ruby or PHP, were using monolithic frameworks: Rails, Symfony, Drupal or Cake. I found myself bogged down reading endless documentation. I recall losing whole days trying to track down a bug in Symfony and then finding it was because of a setting in an obscure YAML file. The situation was not as bad as Struts, but I felt that somehow the world had taken a wrong turn. Once upon a time lightweight scripting languages offered freedom from Java and Struts -- and when you make that comparison, both Ruby and PHP seem like heaven. Bruce Eckel summed up the spirit of the change here:

"But for someone who has invested Herculean effort to use EJBs just to baby-sit a database, Rails must seem like the essence of simplicity. The understandable reaction for such a person is that everything they did in Java was a waste of time, and that Ruby is the one true path." http://www.artima.com/weblogs/viewpost.jsp?thread=141312

To me, Clojure is interesting for 2 different reasons:

1.) the language

2.) the eco-system

The 2 work in combination of course.

When I got done with my 2 week assignment, which I did in 1 week, I ran "lein uberjar" and gave a single binary to the sysadmin, so he could roll it out to the production machines. He asked where the other files were. I said "There are no other files, all the HTML, CSS, Javascript, images and code are in this one file." He asked how to start it. I gave him a simple 1 line startup command. He started it up and was amazed. He said, "That's it?" I said, "That's it." He said "Why can't they all be this easy?" He was used to dealing with complicated Capistrano and Jenkins commands for roll-outs.

To me, Clojure has that simplicity, speed and elegance that I was looking for in 1999, when I stumbled on PHP and decided PHP was the wave of the future.

I suspect the Great Age Of Lisp is still ahead of us. Stuff like Clojure makes me think there is a vast potential here, still waiting to be unlocked.

Re: Ten predictions (2004)

#189

Lisp will never be popular. Everyone likes to kiss the ass of Lisp, and talk about how transformative and powerful it is, then they go and write a bunch of Python or Ruby or Lua or Perl or anything other than Lisp, because infix is just much much more readable. When was the last time you went to a math class and the professor wasn't using infix notation? Even the Common Lisp Hyperspec has to resort to infix notation…

Maybe I'm missing something, but I don't see any infix notation on the linked page.

Re: Ten predictions (2004)

#190

Lisp will never be popular. Everyone likes to kiss the ass of Lisp, and talk about how transformative and powerful it is, then they go and write a bunch of Python or Ruby or Lua or Perl or anything other than Lisp, because infix is just much much more readable. When was the last time you went to a math class and the professor wasn't using infix notation? Even the Common Lisp Hyperspec has to resort to infix notation…

Clojure is a Lisp and has been rising in popularity. I don't know if it is in the top 10, but I wouldn't be shocked if it was in the next few years.

It's #23 on Github, ahead of Go and Erlang. I think top 10 is a tall order but not impossible.

https://github.com/languages/Clojure

Post reply on HN