Build Up your Skills AND your Portfolio
In my opinion that would be a very good learning experience as it will:
- force you to look under the hood,
- guide you to learn how things are internally done,
- encourage you to look at and compare other implementations,
- keep your algorithmics skills up to speed,
- make you code (and hopefully document) a lot, which isn't a bad either,
- give you a significant project and codebase you could share online for all to see, for:
- personal enjoyment and gratification,
- showcasing your skills to potential employers,
- communicate and exchange with peers interested in the same area,
- potentially let it grow into something more...
So I do see this as produce, useful, and overall "worth it".
Get Started
Now you can use different approaches, depending on how much time you plan on spending on this...:
- If you have a limited time-frame, I'd say dive in and code the thing.
- If you have a wider timeframe, then you could indeed go the long-winded way and write specs, tutorials, manual, etc...
Start Small
I would rather recommend you to start small. No one has ever, that I know of, written directly an awesome language just like that. You stumble and fall, and fail, and fail and fail. Then you succeed, in that it works but still sucks, so you start over once more. And you add new features and it's finally getting cool, but suddenly you realize that there's a fundamental concept that you screwed up at the beginning. So you start over once more...
Seems very educational to me.
Go ahead (and share the link with us).
Small, as in "short"
But again, I'd recommend you start small. Don't be afraid if people say it's going to take a lot of code and time. Not necessarily, if you don't aim for a complicated language. Alan Kay and other Xerox PARC engineers allegedly developed an early version of Smalltalk that fit on a single sheet of paper, as an objective for terseness (read Xerox PARC: Dealers of Lightning for details about the history of the PARC). Seems a good, educational and constrained enough approach (as long as it doesn't sacrifice readability).
Small, as in "constrained"
You don't need to support right away an advanced type system, higher-order funcitons and a mix of 42 different paradigms. It could just be a mathematical expression language.
Re-use (and Peek at) Other's Knowledge
You may also want to have a look at tools that are used to write languages from scratch. You can re-implement everything youself, but maybe it's also worth looking at existing lexers and parser generators, for instance.
And obviously, you may want to read up on compiler construction at large.
Now, if we modify your question to be "would it be THE MOST productive use of your time?" it becomes an entirely different issue :)
There are tons of other learning projects you could tackle, and that would train and showcase your skills equally well, if not better. It depends what you want to aim for.