You can say anything bad about the performance of Ruby and Rails etc. but rspec, cucumber, capybara, vcr, factorygirl are really important features to start from zero and reach a viable product.
You can say anything bad about the performance of Ruby and Rails etc. but rspec, cucumber, capybara, vcr, factorygirl are really important features to start from zero and reach a viable product.
`go test`.
> Does Go provide an ecosystem that supports agile refactorings that are common in lean startups?
Go has a compiler and is staticly and strongly typed. Which automatically makes it at least an order of magnitude easier to refactor safely.
Not really sure about the other stuff you mentioned. I've never even heard of BDD before.
Out of curiosity. How does a language specifically support "agile refactoring"? What features permit (or hinder) stopping every couple of weeks and removing the accumulated WTF's in the codebade?
Want to buy a left handed stapler?
Iterating: http://vimeo.com/53221560
I write better tests for my Go code than for any code in other languages that I write. But maybe I just think in complementary ways to Go's testing philosophy.
Unit testing in Go is refreshingly simple. And it comes standard with the Go toolchain.
I haven't came across any Go libraries without tests.
* gospec seems to be dead/not widely used
* I don't see projects measuring their code coverage
* As pointed out in my first comment, I couldn't find high level testing tools and none of the repliers could name one, too.
If you don't have tests to measure function and performance, any new technology is just playing another round of Roulette and/or "bike-shedding". Most projects and companies — to my knowledge — don't fail because of 30 servers for Rails but in the inability to iterate (to find a profitable business segment) without investing/burning bulkloads of money re-engineering. Therefore any serious business use requires a deep evaluation and comparision with existing methods, especially in the quality of service sector.
The Agile/XP/TDD/BDD-movement was not created because of "bad and slow" programming languages. It's because failure happens all the time if you like or not. It's about dealing with the omnipresent risc and changing specs.
I suppose you have to make that time far enough away that it won't affect your business. If you go past it, your good developers will leave and you'll likely only get lower class devleopers who have to take the job.
As a result your entire stack will suffer. The business side is important, but the entire engineering side can die if you neglect it too much.
Complexity must be managed.
That said, you are correct about:
* Few projects use CI. I think this is due to the fact that most of the libraries being developed are done by very small teams that see it as too much overhead.
* Same with code coverage.
* Most find the testing that Go uses for the language itself to be more than enough.
I think that Go has a much different attitude towards development than you are used to.
I can't quite quantify why and I could be wrong, but I suspect not all of the testing methodologies you talk about are necessary.
Would be great for someone else also experienced with Go and experience with the type of testing environments rmoriz describes to chime in!
Cute.