Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Using another language that has tooling problems & slow compile speeds, I can understand why that alone would make you not want to use it anymore.

After a certain point all of the advantages of the ecosystem starts going away if compile/indexing speeds are not good and tooling doesn't work.

Golang was designed from the start to make tooling and fast compile speeds a first class citizen from the start. It has a lot of decisions that make sense when your working with large teams.



Compile times are a problem, yes, but tooling is not an issue. sbt is a solid build tool in my opinion.

Regarding the compiler, the Scala team has that as their number 1 priority right now. There is major work being done on building the compiler from the ground up [1]. Also, there is scala-native, which aims to provide AOT compilation for Scala code [2].

Scala vs. Go is an interesting comparison, but I think that they are each targeting different applications. There definitely is some overlap though. Go tooling is pretty good, but I don't see the hype. Maybe it becomes more clear if you're working on a large Go codebase? I don't know.

[1]: http://dotty.epfl.ch/

[2]: https://github.com/scala-native/scala-native


I come from the swift world, where a lot of their scala issues resonate with me. The article also mentioned tooling being an issue for them.

They have a lot of decisions that make a lot of sense in large code project context, which google has plenty of. Stuff like KISS, fast code speed, standard formatting & build tooling and so on.

I haven't worked with either language, so take what I say with a grain of salt.


What does it mean to make tooling a first class citizen?


From the start they decided to ship with a standard formatter / linter for example. A standard cross platform build system, optimized for build speed from the start, etc. I think a better word would of been a 'top priority'.


That is not a lot of tooling, actually. I am thinking about IDE integration, static analysis, code generation, package management. What are aspects of the tooling experience I am missing?




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: