A
Adam Bard
adambard.com · Personal blog · on HN since 2013
Adam Bard writes about programming, mainly Clojure, with language comparisons, tutorials and GitHub language popularity statistics.
What HN saysHN links it for 'Top GitHub Languages' stats and a real-world comparison of the same web app in PHP, Python, Ruby and Clojure.
51HN people shared it
19linked it in comments
52stories submitted
1.0Kstory points
5 years agolast shared
2013people per year2026
Most-shared posts
- 1Top Github Languages for 2013 (so far)8 people · 26 points · first shared 2013 · 6 comments on HN
- 2Clojure is not for geniuses4 people · 8 points · first shared 2014 · discussion on HN
- 3Learn Clojure in 15 Minutes4 people · 7 points · first shared 2013 · discussion on HN
- 4OCaml for the impatient3 people · 27 points · first shared 2017 · 1 comments on HN
- 5Top GitHub Languages of 2014 (So far)3 people · 1 points · first shared 2014 · discussion on HN
- 6Clojure.core: Batteries Almost Included2 people · 134 points · first shared 2013 · 26 comments on HN
- 7Clojure's core.typed vs Haskell2 people · 120 points · first shared 2013 · 62 comments on HN
- 8The same app 4 times: PHP vs Python vs Ruby vs Clojure2 people · 74 points · first shared 2013 · 92 comments on HN
- 9Middleman + Enlive: The best thing to happen to HTML output since PHP2 people · 8 points · first shared 2013 · discussion on HN
- 105 mistakes I made writing my first Clojure application2 people · 8 points · first shared 2015 · discussion on HN
- 11Structured Clojure: Protocols and multimethods (oh my)2 people · 4 points · first shared 2013 · discussion on HN
- 12Deploying a Small Clojure + MongoDB Application on Heroku and MongoHQ2 people · 3 points · first shared 2013 · discussion on HN
- 13Cover Letters, then and now2 people · 2 points · first shared 2013 · discussion on HN
- 14Why Clojure for the web? Part 2: Effortless async by design2 people · 2 points · first shared 2013 · discussion on HN
- 15Clojure web apps: Zero to 'Hello World' on Heroku in Clojure in 15 minutes2 people · 2 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
avtar · 2017-03-31
I'm not that familiar with Clojure but I found the following example that seems more real world-esque than the 4clojure.com resource posted below:
https://adambard.com/blog/PHP-ruby-python-clojure-webapps-by-example/
adambard · 2014-12-09
The other relevant metric is the distribution of speakers. Most of the speakers of Chinese live in China, but English is a significantly common language in 67 countries by Wikipedia's admittedly questionable estimation: http://en.wikipedia.org/wiki/List_of_most_widely_spoken_languages_(by_…
I don't think the data is entirely trustworthy -- it seems unlikely that "Turkic" is spoken substantially in Lithuania -- but I did some analysis based on this data anyhow: http://adambard.com/blog/what-language-should-you-learn/
bsima · 2014-12-04
Adam Bard's recent work is a good example: http://adambard.com
As is Kevin Lynagh's http://keminglabs.com - He also made Denizen (I think) https://getdenizen.com/
I have no idea if any of these are profitable, but at least you get some ideas. Searching "site:news.ycombinator.com microbusiness" also brings up some good examples, for instance: https://news.ycombinator.com/item?id=7367243
chadnickbok · 2014-10-23
I always find the TIOBE Index fascinating, but mainly because I just don't get it! I have no idea how any index can rank Transact-SQL (not even just 'sql') over JavaScript.
I'm not sure where the index pulls in its data, but if its putting a specific branch of SQL ahead of JavaScript, I've got to say I disagree.
It does, however, provide a really interesting comparison to the GitHub version of the popularity contest. This article shows quite a different picture: http://adambard.com/blog/top-github-languages-2014/ (albeit a month or two stale now)
The most surprising thing I see from both these lists, however, is that even though we've had decades of programming-language progress, straight-up C still has a hugely strong showing. Sometimes simple is still the best, I guess!
ramchiranjeevi · 2013-09-09
I love Front end work. Using latest technologies and frameworks in Javascript, CSS3 and HTML5 you can give a WOW feeling to the user.
Also the top github languages for 2013 is also Javascript.
http://adambard.com/blog/top-github-languages-for-2013-so-far/
lkrubner · 2013-12-24
I don't have an answer for you, but for the last year I have been learning Clojure, and I have found it fascinating. I do not think this will satisfy you, but I would like to share some of the things that I find interesting about Clojure.
Lately I've been studying the source code of Aleph, a web server written by Zach Tellman. Zach is a very smart guy, and reading his source code is an education (I've actually found this true of the majority of Clojure projects: the quality of the code is very good, and Clojure is the only language I've worked with so far where I have been able to learn so much reading the source code of the 3rd party libraries that I rely on).
Let's start with an interesting comment about Java, on StackOverflow:
Why doesn't more Java code use PipedInputStream / PipedOutputStream?
http://stackoverflow.com/questions/484119/why-doesnt-more-java-code-us…
In response to that question, matt_b suggests this is part of the reason why people don't use pipedinputstream or pipedoutputstream:
"Typically, data is read from a PipedInputStream object by one thread and data is written to the corresponding PipedOutputStream by some other thread. Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread."
So now, look at how PipedInputStream and PipedOutputStream are used in Aleph:
https://github.com/ztellman/aleph/blob/perf/src/aleph/formats.clj
In particular, look at this…
arunix · 2020-03-26
This seems like a lot of work for a result that isn't even very self documenting compared to some earlier efforts e.g.
Guido's post on multimethods: https://www.artima.com/weblogs/viewpost.jsp?thread=101605
Clojure style multimethods: https://adambard.com/blog/implementing-multimethods-in-python/
bmh100 · 2015-07-08
Try this short blog post: "Clojure Is Not For Geniuses" http://adambard.com/blog/clojure-is-not-for-geniuses/
akurilin · 2015-05-10
Some discussions on the subject:
http://adambard.com/blog/core-typed-vs-haskell/
http://www.reddit.com/r/Clojure/comments/2hql2h/why_is_coretyped_suppo…
m0th87 · 2014-11-10
> One of the reasons why Lisp is fading into irrelevance is that GC is obsolete tech.
RAII, smart pointers and ARC aren't free lunches, which is why people had moved from them to GC in the first place.
Of the top 10 languages on github [1] that require memory management, 7 of them use GC [2].
> This is also a factor in why Android phones are orders of magnitude slower than equivalently-specced iPhones
That's a pretty nutty assertion to make without data.
1: http://adambard.com/blog/top-github-languages-2014/
2: Discluding CSS and shell since they don't require memory management. Python's default implementation actually has both RC and GC.
jlund3 · 2014-08-19
Obviously we were supposed to think that Java would be the biggest abuser of this construct. However, keep in mind that Java is severely under represented on GitHub compared to languages like PhP. Compare http://adambard.com/blog/top-github-languages-for-2013-so-far/ to http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html and notice the discrepancies. In other words, sampling on GitHub is severly biased.
aioprisan · 2014-02-03
Depends how you define "popular". Perhaps activity on GitHub is more fitting, where JS wins, hands-down: http://adambard.com/blog/top-github-languages-for-2013-so-far/
Lazare · 2013-12-02
Hmm, possibly this: http://adambard.com/blog/what-your-datastore-says-about-you/
> MongoDB: We haven’t picked a database yet.
So much truth. :)
NoodleIncident · 2013-11-10
The biggest difference is that functions go after the left-paren, not before. Commas are also unnecessary, they're just whitespace
foo(bar, baz) => (foo bar baz)
herp(bar, derp(baz)) => (herp bar (derp baz))
This might help as well: http://adambard.com/blog/clojure-in-15-minutes/
sriharis · 2013-10-27
This first lesson was quite similar to Clojure in fifteen minutes: http://adambard.com/blog/clojure-in-15-minutes/. I find both pretty good, although this seems more promising. Waiting for more!
calibraxis · 2013-06-28
Scroll near the bottom of this page, and you'll see types used for safety — not just performance — and there's contracts too: (http://adambard.com/blog/clojure-batteries-included/)
[Disclaimer: I have never used core.typed.]
MetaCosm · 2014-02-04
What is "significant penetration" from your perspective? It is very young (as a 1.0, not even 2 years old). What language would you compare it to, and where was that language at 2 years old?
What was Java adoption in 1998? What was Scala adoption in 2006? What was Python adoption in 1996.
Unless the trend lines shift, Go is a IMHO something of a phenomenon. It seems to hit a lot of sweet spots in deployment, tooling and simplicity that is making a lot of groups happy. It is already being used to build tools people depend on (docker [just raised 15M], packer, nsq, juju, heka, coreOS), it is fast (http://www.techempower.com/benchmarks/) ... additionally, it seems to have decent penetration on both ends of the spectrum, large enterprises and tiny start-ups are choosing it (http://code.google.com/p/go-wiki/wiki/GoUsers), DevOps and Software Engineers are living together in rare harmony due to painless deploys and handoffs.
If you want to use GitHub as a barometer of language popularity ... http://adambard.com/blog/top-github-languages-for-2013-so-far/ --- Go is tracking darn close to Scala, despite being 8 years younger.
DonHopkins · 2019-04-04
You can do multiple dispatching in Python, by hand or with decorators, but it can get kind of awkward, not as elegant as CLOS's and Dylan's approach with generic functions.
https://www.artima.com/weblogs/viewpost.jsp?thread=101605
Five-minute Multimethods in Python,
by Guido van van Rossum.
I used to believe that multimethods were so advanced I would never need them. Well, maybe I still believe that, but here's a quick and dirty implementation of multimethods so you can see for yourself. Some assembly required; advanced functionality left as an exercise for the reader.
https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Multipl…
https://pythonhosted.org/multidispatch/
https://adambard.com/blog/implementing-multimethods-in-python/
https://opendylan.org/documentation/intro-dylan/multiple-dispatch.html
https://opendylan.org/documentation/intro-dylan/objects.html#generic-f…
https://en.wikipedia.org/wiki/Multiple_dispatch
https://en.wikipedia.org/wiki/Generic_function
asynchronous13 · 2013-11-10
Microsoft's Office suite is primarily C++. There was an attempt to start using more C# a couple years ago, but it's still mostly C++.
On a closed-source project, it's hard to get the details. But the open source projects, however, we can get a very clear picture.
OpenOffice: [1]
10.4 million lines of C++
1.2 million lines of Java
*edit* noticed you mentioned LibreOffice, not OpenOffice
LibreOffice: [2]
5.7 million lines of C++
0.4 million lines of Java
Firefox: [3]
4.0 million lines of C++
1.8 million lines of C
1.7 million lines of javascript
MySql: [4]
7.0 million lines of C++
4.0 million lines of C
0.4 million lines of javascript
0.3 million lines of Java
The point I'm trying to make is that C++ is widely used, and definitely not used just for gaming.
> Most new development isn't done in C++
Whether or not C++ is the right choice for new development is a different question. Github posted their top 20 languages for new repositories in 2013 [5]. C++ is #6 and has more new projects than C, Objective-C and C#. Even if it's fading in popularity, that's still a lot of new projects in C++.
[1] http://www.ohloh.net/p/openoffice/analyses/latest/languages_summary
[2] http://www.ohloh.net/p/libreoffice/analyses/latest/languages_summary
[3] https://www.ohloh.net/p/firefox/analyses/latest/languages_summary
[4] http://www.ohloh.net/p/mysql/analyses/latest/languages_summary
[5] http://adambard.com/blog/top-github-languages-for-2013-so-far/