I think that's a natural course of action for people comfortable with formal semantics of languages: "implement it, or implement something in it" is an excellent way to learn.
OTOH, one gets a lopsided view of the language. I have been learning Java for the last 1.5 months, most of it hacking on ABCL. I have got a good understanding of the runtime system, reflection, class-loading, security and the type-system. But I still look up primitive stuff like string manipulation and file I/O operations.
I miss Lisp a lot, but Java makes up in platform what it lacks as a language. You can use class instrumentation libraries to generate and manipulate code at run time. It's well worth tolerating, at least until I know enough of it to wrap the libraries I need to use from ABCL.
Eclipse is nice once you ditch the mouse and install the Emacs bindings plugin.
Comments
I think that's a natural course of action for people comfortable with formal semantics of languages: "implement it, or implement something in it" is an excellent way to learn.
OTOH, one gets a lopsided view of the language. I have been learning Java for the last 1.5 months, most of it hacking on ABCL. I have got a good understanding of the runtime system, reflection, class-loading, security and the type-system. But I still look up primitive stuff like string manipulation and file I/O operations.
I miss Lisp a lot, but Java makes up in platform what it lacks as a language. You can use class instrumentation libraries to generate and manipulate code at run time. It's well worth tolerating, at least until I know enough of it to wrap the libraries I need to use from ABCL.
Eclipse is nice once you ditch the mouse and install the Emacs bindings plugin.