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

http://kyleisom.net/blog/2012/10/17/syntax-off/

Syntax highlighting is less common in the Go community since Rob Pike called syntax highlighting juvenile :D https://groups.google.com/d/msg/golang-nuts/hJHCAaiL0so/kG3B...

He also argued against keyword emphasizing: http://www.lysator.liu.se/c/pikestyle.html




...

This is surely a minority view.

Everyone uses syntax highlighting, for everything. for everything

I can't honestly believe the whole go community just decided to by like, oh gee, well Rob doesn't like it, I gues we'll just ignore what everyone else is doing and do our own thing.

For what it's worth, I use syntax highlighting in my go code, and so does http://tour.golang.org/


And everyone uses it for a reason: color is one of the primary discriminators of human vision, it carries information efficiently and does it instantly, as clearly laid out in the Wikipedia article about visual search (pop-out effect) : http://en.wikipedia.org/wiki/Visual_search

It seems strange that Rob Pike would call it "infantile". I don't think it's very modern (nor mature) to say that either, since it completely ignores years of research done on the subject by scientists. But then again, to each his/her own.


He isn't arguing that highlighting doesn't carry more information. I think he's saying that it carries useless or wrong information.


> Everyone uses syntax highlighting, for everything. for everything

I guess I'm not the mainstream kind of guy then.


I even use proportional font for coding.


Yup. Monospace fonts are only an artefact of typewriters.


Colour can help carry information. It is a lot easier to identify strings if you use colours rather than just rely on seeing opening and beginning quotes. I know that I find it very useful - and even more so my choice of colours for comments making them blend more in the background and making it easier to forget.

I would liken it to the use of boldface letters to represent matrices (or vectors) in some math textbook: without this convention, you have to rely a lot more on memory to know what each symbol represents. Mathematicians and physicists everywhere have found this to be useful.

When you have a huge majority of programmers using syntax highlighting, you have to ask yourself if there is not an instrinsic value to its use and, if so, perhaps try to use it to communicate with the larger community, rather than adopting a cliquish practice.


My suspicion / theory is that most programmers turn on syntax highlighting for the same reason that they have desktop wallpapers: to make their lifes more colorful.


Good language-aware syntax highlighters do a lot more than highlight keywords and other syntactic things, and can make code more readable in a nontrivial way. For example, Eclipse's Java editor will color things differently based on the scope you pull it from, which lets you distinguish local variables, non-static fields, static fields, and inherited fields. It does a similar thing for method invocations, including a strikethrough for methods marked as deprecated. This saves having to manually go to a bunch of definitions in order to get the proper context when reading code you're not familiar with.


When your externally mandated build process is really slow, you appreciate things like easily noticing an unclosed quote, or a missing */ that was supposed to close a comment.


One of the main selling points of Go is that builds are fast.


That doesn't make failed builds any less frustrating. Heck, in Python, you don't even have builds, but getting a SyntaxError on import is still frustrating.


And syntax highlighting is even faster..


Like most languages with modules.


That's a perfectly valid reason in and of itself.


To be honest, I often feel as if I was in a brothel on some blogs with CoffeeRubyNodeScript highlighting. (However, the choice of colors on this one isn't too good either)


"I would liken it to the use of boldface letters to represent matrices (or vectors) in some math textbook: without this convention, you have to rely a lot more on memory to know what each symbol represents."

This is an excellent comparison, as programming languages probably have more in common with mathematical notation than natural language prose.


There's syntax highlighting and various other editor support installed with and included in the Go source tree:

http://code.google.com/p/go/source/browse#hg%2Fmisc

Rob Pike may have an issue with it, but the Go team most certainly does not.


His editor (Acme) doesn't support syntax highlighting, so his only choice (without abandoning Acme) is to call this an unimportant juvenile ;)

You should really take it with a grain of salt.


He wrote his own editor. It's not that acme doesn't happen to have syntax highlighting, it's that he explicitly decided against it.


Here is a pretty well-known essay against syntax highlighting: http://www.linusakesson.net/programming/syntaxhighlighting/i...

Honestly, I've never bought it.


FYI this just popped up on my twitter stream https://twitter.com/shit_hn_says/status/295712765149061121




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: