Hacker News new | past | comments | ask | show | jobs | submit login

Wow. So it just rewrites it to the latest version, with (according to what you just said) about 95% accuracy?

Does that make other people feel queasy, or just me? Like, that feels like a really bad idea to me. What happens if the result only mostly works?




It's a language undergoing rapid development. The developers are planning sometime in early 2012, to release a "Version 1" of go, to which no backwards incompatible changes will be made.

http://blog.golang.org/2011/10/preview-of-go-version-1.html


Typically gofix just works, well that is my experience of running gofix three times over the six last months. The release notes document when the language has changed and when gofix can help you migrate, and sometimes it can't help and it is documented.

Additionally, go exposes the complete AST for the language and a pretty printer as libraries, so you can write your own fixes if you don't trust gofix.


> What happens if the result only mostly works?

You fix the other parts, or revert to a previous version of your source tree.


Python has been doing this for awhile, hasn't it?


Python has broken backwards compatibility with Python 3 and tools were written to translate 2.x code to 3.x but that is not at all a regular thing.


I would say that Python breaks backwards compatibility in small ways for minor releases semi-regularly, such as adding new keywords (with, yield), removing little-used standard library modules, and removing support for raising strings as exceptions, but always provides deprecation warnings for a release first and (for new keywords or syntax) allows early opt-in with "from __future__ import"

http://www.python.org/dev/peps/pep-0387/


You missed the "automatically" part. The other 5% of the time, it can bail out with a message, and you go fix it yourself.

Python also has 2to3.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: