Unfortunately that's a bit confusing. take() is not a Gremlin step. It is instead a Groovy function that is being applied to the end of a traversal (which itself is an Iterator). In much the same way that you can use take() at then end of a traversal you can use other Groovy functions:
gremlin> g.V().take(1)
==>v[1]
gremlin> g.V().collect{it.value('name')}
==>marko
==>vadas
==>lop
==>josh
==>ripple
==>peter
Of course, once you use a Groovy function to process the pipeline you can't go back to Gremlin steps:
gremlin> g.V().take(1).out()
No signature of method: org.codehaus.groovy.runtime.DefaultGroovyMethods$TakeIterator.out() is applicable for argument types: () values: []
Possible solutions: sum(), sort(), sort(groovy.lang.Closure), sort(java.util.Comparator), count(java.lang.Object), count(groovy.lang.Closure)
Type ':help' or ':h' for help.
Display stack trace? [yN]
which is why you would prefer limit(1):
gremlin> g.V().limit(1).out()
==>v[3]
==>v[2]
==>v[4]
Of course, if you're not using Groovy and are programming in a Java environment then it would be obvious that take() and other such functions aren't going to be available to you.