skip to main | skip to sidebar

Tables Latency Benchmark

Being the blog of Pete Hopkins. This pirate kills fascists.

Bling-Bling

www.flickr.com

Tuesday, October 3

IDE and Language Religion. Move Along.

Tim Bray thinks you can do refactoring in a dynamic language by getting the necessary data from just running the code. “I’ll bet Tim’s IDE will also be able to tell you when you write an infinite loop!” the programming languages student said snarkily.

Cedric Beust calls him on it. I agree, though I don’t know anything about Groovy. Left out of the discussion is, as always, ML (c’mon, Cornell folks, step up!), which gives you static type guarantees as well as the “convenience” of not specifying types. (At the expense of having to debug type conflicts… always a good time.)

I guess I still have to be a Schemer at heart, and I still have to use JavaScript due to working in the tubes, but I am smitten with Java, for basically one reason: IntelliJ.

Two important features:
  • Control-click to go to a method’s definition. Nothing helps me understand the code more than following a method to its definition. And where I work, there’s a lot of code to understand. My heart actually goes out to my co-workers who try to get by with Emacs and vi, who have to scroll up to find what package a symbol comes from, then tab-complete their way through the package hierarchy to get to the file. Only to find out that that’s just an interface.
  • Renaming. This is Tim Bray’s desire. AKA “find usages.” I am sick obsessive about my names. They have to be perfect. And as I’m developing a chunk of code, sometimes a method’s purpose changes. When that happens, the name must change. Otherwise, when another engineer looks at it in 5 months, they won’t understand what the code does, and they’ll write a bug because of it.
Maybe I’m just spoiled, but I couldn’t imagine working on a project as large as — in both lines of code, dependencies, and number of engineers — as Blogger without IntelliJ without taking a significant hit in productivity, code quality, and maintainability. The IDE lets me be in control of the code in a way that I never felt before.

Perhaps that’s something you kids and your startups should think about. If your project lasts two years (or seven, though things have been rewritten a few times), in what state will your super-dynamic language code be? Will your new hire be able to figure out what’s going on without significant wading? Will methods and classes be named incorrectly because there was too much friction to set things right?

And seriously: the real magic bullet for programmer productivity? Control-space name completion. Someone tell Fred Brooks.
Posted by Fin at 1:33 AM

1 comment:

  1. Shriram Krishnamurthi6:06 PM

    Emacs users have long used TAGS to find definitions. Meta-. is the magic incantation. Admittedly it's purely syntactic, but for a language as first-order as Java, that ought not be too much of a problem.

    DrScheme helps you find definitions (the little pull-down at the top-left of your window) *and* it gives you a precise (not search-and-replace) alpha-renaming facility.

    ReplyDelete
    Replies
      Reply
Add comment
Load more...

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

Followers

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Blog Archive

  • ►  2009 (7)
    • ►  March (5)
    • ►  January (2)
  • ►  2008 (36)
    • ►  December (4)
    • ►  October (1)
    • ►  September (4)
    • ►  August (8)
    • ►  July (4)
    • ►  May (2)
    • ►  April (4)
    • ►  March (4)
    • ►  February (3)
    • ►  January (2)
  • ►  2007 (24)
    • ►  December (1)
    • ►  November (2)
    • ►  October (5)
    • ►  September (1)
    • ►  June (6)
    • ►  May (2)
    • ►  March (3)
    • ►  February (1)
    • ►  January (3)
  • ▼  2006 (32)
    • ►  December (3)
    • ►  November (1)
    • ▼  October (5)
      • Sync Odeo and iTunes with Automator
      • Checking All Those Comments Feeds
      • Cultural Notes and Products
      • IDE and Language Religion. Move Along.
      • Opera Mini: Where have you been all my recently?
    • ►  September (3)
    • ►  August (2)
    • ►  May (1)
    • ►  April (2)
    • ►  March (1)
    • ►  February (6)
    • ►  January (8)
  • ►  2005 (53)
    • ►  December (8)
    • ►  November (30)
    • ►  October (5)
    • ►  September (10)

Gamercard

Geekness

Twitter Updates

Twitter Updates

    follow me on Twitter

    About Me

    My Photo
    Fin
    I play board games and video games, and sing sea shanties when I can. I like shiny things and tech things and cat macros. I am aware of all Internet traditions.
    View my complete profile

    Search This Blog

    Friends’ Blogs

    • Mihai Parparita
      Infinite Mac: Snow and A/UX
      4 weeks ago
    • Jason Shellen
      methaphone
      10 months ago
    • Graham Waldon
      Card Game: The Fellowship of the Ring
      1 year ago
    • Michael Greenberg
      I’m looking for students!
      2 years ago
    • Adam Saks
      Mengatasi Ambeien Atau Wasir Kambuh
      6 years ago
    • Abstractioneer
      Things People Have Been Impeached For In the Past
      6 years ago
    • Kellan Elliott-McCrea
      New-ish site
      7 years ago
    • tins ::: Rick Klau's weblog
      Jaguar I-Pace first impressions
      7 years ago
    • Jason Goldman
      Links for 2017-02-22 [del.icio.us]
      9 years ago
    • Greg Stein
      PSA: Redbud Custom Homes
      9 years ago
    • --verbose
      How to Write Hello World in Go (in Go)
      12 years ago
    • Stacy Jenson
      I promise not to mommyblog
      12 years ago
    • Eric Case
      Creepy
      13 years ago
    • Vast Public Indifference
      Pompe Stevens, Enslaved Artisan
      13 years ago
    • watched pots | news
      Dogs are cool.
      14 years ago
    • Rachel Grey
      Six months with Ido Portal: game-changer 2011
      14 years ago
    • Lauren Davis
      Best Thing Today: Opinioncat Lady
      14 years ago
    • massless
      Dreams, discernment, and Google Reader
      14 years ago
    • saladwithsteve
      Building F# on Mac OS X
      16 years ago
    • Farang
      Kaiseki
      17 years ago
    • Marty Lichmann
      Janko Keyboard
      17 years ago
    • Shriram Krishnamurthi
      Project Beansprout Successful
      17 years ago
    • Mobile Vince
      Hawaii wrap-up
      19 years ago
    • Chinese Migrant Worker
      More Real Than Real
      19 years ago
    • Laurence Gonsalves
      Copyright Law and the King
      19 years ago
    • Josh Peterson
      St. Pardi Gras Shirts
      19 years ago
    • Buzz Andersen
    • Tina Huang
    • Evan Williams
    • Andy Yen
    • Biz Stone, Genius
    • Kimmy Richardson
    • tajc | taj campbell
    Show 10 Show All
    Powered By Blogger