Top all-time · #922
Charles Oliver Nutter
Personal blog · blog.headius.comprogramming
Charles Oliver Nutter is a personal blog at blog.headius.com about programming. Since 2008, 74 different Hacker News readers have linked it 115 times, most often “Refining Ruby”. It is still writing: the last post was on 2026-07-10, and you can follow it by feed.
Java, Ruby, and JVM guy trying to make sense of it all
Most-linked posts?
- Refining Ruby9 people · 11 mentions · first linked 2012-11-19
- How JRuby Makes Ruby Fast6 people · 6 mentions · first linked 2009-04-03
- A First Taste of InvokeDynamic5 people · 6 mentions · first linked 2008-09-12
- On Languages, VMs, Optimization, and the Way of the World4 people · 4 mentions · first linked 2013-05-11
- So You Want To Optimize Ruby4 people · 4 mentions · first linked 2012-10-15
- JRuby Nailgun Support in 1.33 people · 3 mentions · first linked 2009-05-13
- Kicking JRuby Performance Up a Notch3 people · 3 mentions · first linked 2010-05-31
- Avoiding hash lookups in a Ruby implementation3 people · 3 mentions · first linked 2012-09-04
- Invokedynamic in JRuby: Constant Lookup3 people · 3 mentions · first linked 2011-08-10
- /2009/01/my-favorite-hotspot-jvm-flags.html2 people · 3 mentions · first linked 2010-08-02
What Hacker News says?
I quite enjoy these: http://ayende.com/blog (.NET centric, writes RavenDB/NHibernate Profiler) http://blog.headius.com/ (JRuby creator)
Comment linking /
on “Ask HN: What programming blogs do you read daily?”Submitted My Thoughts on Oracle v Google as a story · 606 points
HN discussionThe JVM itself doesn't add a huge memory footprint. I remember Charles Nutter of JRuby fame calling it the "20-30 MB memory tax" (see http://blog.headius.com/2008/11/noise-cancelling.html ). A lot of the extra memory usage of Java apps comes from sloppy programming and from depending on lots of heavyweight libraries and frameworks.
Comment linking /2008/11/noise-cancelling.html
on “Scala Native v0.1”Submitted Running JRuby on the Graal JIT as a story · 173 points
HN discussionThere's a really in-depth article on them that also covers concerns about the implementation: http://blog.headius.com/2012/11/refining-ruby.html
Comment linking /2012/11/refining-ruby.html
on “Ruby 2.0.0 Released”Submitted Refining Ruby as a story · 168 points
HN discussionCharles Nutter does a good job of explaining why you can't just ignore refinements: http://blog.headius.com/2012/11/refining-ruby.html In summary, they makes the Ruby language harder to implement, and Ruby code harder to understand. You can't pretend they don't exist if their existence compromises the meaning of your code and the performance of your chosen Ruby implementation.
Comment linking /2012/11/refining-ruby.html
on “Ruby 2.0.0 Released”Submitted So You Want To Optimize Ruby as a story · 126 points
HN discussionhttp://blog.headius.com/2009/04/how-jruby-makes-ruby-fast.ht... At least once a year there's a maelstrom of posts about a new Ruby implementation with stellar numbers. These numbers are usually based on very early experimental code, and they are rarely accompanied by information on compatibility. And of course we love to see crazy performance numbers, so many of us eat this stuff up.
Comment linking /2009/04/how-jruby-makes-ruby-fast.html
on “Announcing Topaz: A New Ruby”Submitted JRuby Creator's Short List of Key Missing JVM Features as a story · 124 points
HN discussionOne of the major launch criterion was having "enough of Ruby that the performance won't change". What does that mean in practice? We have exceptions, we have bindings, and we have all manner of other obscure corner cases. Charles Nutter (JRuby dev) writes about this: http://blog.headius.com/2012/10/so-you-want-to-optimize-ruby...
Comment linking /2012/10/so-you-want-to-optimize-ruby.html
on “Announcing Topaz: A New Ruby”Submitted On Languages, VMs, Optimization, and the Way of the World as a story · 90 points
HN discussionYes, invokedynamic[1] 1. http://blog.headius.com/2008/09/first-taste-of-invokedynamic...
Comment linking /2008/09/first-taste-of-invokedynamic.html
on “Java 7 is now available”Submitted Creating beautiful charts with JRuby and JFreeChart as a story · 67 points
HN discussionCongratulations Ruby team! I'm excited to hear about the performance improvements. It seems like JIT could be a huge win since calling a method requires checking all kinds of possibilities that are almost always not used, but might be. I would love to keep all the power & fun of Ruby without worrying so much about performance. Speaking of optimizing method calls: now that it's been a few years, I wonder what Ruby fo…
Comment linking /2012/11/refining-ruby.html
on “Ruby 2.6.0-preview2 released with JIT”Submitted Introducing Surinx (Ruby syntax w/ Java typing) as a story · 51 points
HN discussionIt's not very well documented, but BiteScript looks very interesting: http://blog.headius.com/2009/03/bitescript-001-ruby-dsl-for-... http://blog.headius.com/2009/05/bitescript-002-scripting-exa...
Comment linking /2009/05/bitescript-002-scripting-examples.html
on “I want to compile a C program so simple I can explain all of the assembly”Submitted An experiment in static compilation of Ruby: FastRuby as a story · 50 points
HN discussionActually, with Android Scripting ( http://code.google.com/p/android-scripting/ ) you can use other languages that run on jvm, such as ruby, python, javascript and others. Charles Nutter even supports a ruby version on Android directly: http://blog.headius.com/2010/01/busy-week-jruby-with-android... . If you like static typed languages, you can even use Scala on Android ( http://www.scala-lang.org/node/160 ). Many po…
Comment linking /2010/01/busy-week-jruby-with-android-maven-rake.html
on “Android Tries Harder”Submitted The future of java as a story · 37 points
HN discussionYou are technically correct. A Sufficiently Smart Compiler(TM) could theoretically optimize python code. However certain language features can be inherently difficult to optimize. Most of it's over my head, but headius has written some great articles as part of his experience of implementing ruby on the jvm. http://blog.headius.com/2012/09/avoiding-hash-lookups-in-rub...
Comment linking /2012/09/avoiding-hash-lookups-in-ruby.html
on “Why Python Is Slow: Looking Under the Hood”Submitted Invokedynamic in JRuby: Constant Lookup as a story · 34 points
HN discussionRuby already works, actually: http://blog.headius.com/2011/01/jruby-on-rails-on-amazon-ela...
Comment linking /2011/01/jruby-on-rails-on-amazon-elastic.html
on “Introducing AWS Elastic Beanstalk”Submitted Q/A: What Thread-safe Rails Means as a story · 29 points
HN discussionGood article explaining complexity of refinements in Ruby: http://blog.headius.com/2012/11/refining-ruby.html
Comment linking /2012/11/refining-ruby.html
on “Ruby 2.3.3 released”Submitted The future of Ruby is....Java? as a story · 27 points
HN discussionHere's a good, if old, quick intro to some of the stuff the JVM does: http://blog.headius.com/2008/05/power-of-jvm.html Choice section: The JVM is basically a dynamic language runtime. Because all calls in Java are virtual (meaning subclass methods of the same name and parameters always override parent class methods), and because new code can be loaded into the system at any time, the JVM must deal with nearly-dynam…
Comment linking /2008/05/power-of-jvm.html
on “Chris Lattner on Swift and dynamic dispatch”Submitted The Elephant: Why is JRuby such a polarizing issue? as a story · 25 points
HN discussionWell, to not answer your question: Hotspot performance tuning is a fine art, and benchmarking is a somewhat separate fine art, people will sample their data carefully, do a lot fo runs, warming up properly, using different GC's, tuning heap,GC generations, MaxInlineSize, maybe 32-bit (-server). I remember reading linux package managers often don't include -client in the 64-bit install. JDK7 maybe faster, many people…
Comment linking /2009/01/my-favorite-hotspot-jvm-flags.html
on “Practical Garbage Collection - Part 1: Introduction”Submitted Headius: Quick Thoughts on Oracle/Apache and the Java TCK as a story · 24 points
HN discussion