4 ms·
Either you care about shipping products, and making things of value, or you care about what the latest fashionable language to do it in is.
by speckledjim 15y ago
Either you care about shipping products, and making things of value, or you care about what the latest fashionable language to do it in is.
- rauljara 15y agoIf you care about shipping products, it is worth it to care about the tools you use to ship the products with. Some languages are fashionable because they are neat. Some languages are fashionable because they have allowed people to ship products better and faster. Some languages are fashionable because of both.
- PaulHoule 15y agoThere are a handful of commercial success stories with Scala, like the messaging engine behind Twitter, but not a lot. I can definitely see how an individual or small team could build something fiendishly clever in Scala that's maybe 2,000 lines of code that does the work of 20,000 lines of code in some other language. On the other hand, I'm not sure that systems 10x that size developed by bigger teams would succeed in Scala, and I fear for what happens when that 2,000 line Scala system falls into the hands of maintenance programmers.
- rauljara 15y agoHe made his statement in the general sense, and I responded in the general sense. I don't know scala and can't speak to it. But I've heard that exact same sentiment applied to ruby (rails, specifically). But ruby has enabled huge increases in productivity for me over php. So I can safely say that the sentiment that if one is doing something fashionable one must not care about shipping, is full of shit.
- bad_user 15y agosmall team could build something fiendishly clever in Scala that's maybe 2,000 lines of code that does the work of 20,000 lines of code I actually provoke you to pick a language, any language other than assembler, and write a piece of software with both languages, of reasonable complexity (no micro-benchmarks shit), as concise as you can. If the source-code in Scala is at least 3 times smaller, I'll buy you a drink.
- TylerE 15y agoCOBOL?
- jeswin 15y agoI work as a consultant in Bangalore; most of my daytime job involves reviewing projects (for code quality). I see about 8-10 projects a month (Java/.Net). There are projects which are just bad, let's ignore those. Those which can be classified as maintainable, are well structured and object-oriented, they abstract implementations behind interfaces etc. But, they are verbose. I could probably accomplish the same thing in about 3x less code using FP/declarative constructs. Reminds me of Yegge's Kingdom of Nouns; it is a funny read if you haven't read it yet.
- melling 15y agoYesterday on HN, someone from FourSquare said they have 150k lines of Scala. http://news.ycombinator.com/item?id=2679041 http://news.ycombinator.com/item?id=2679041 Is it safe to assume that would be 300k-450k if written in Java?
- fogus 15y agoThere are a handful of commercial success stories with Scala Correction: There are a handful of commercial success stories with Scala made public. There are companies trying to solve hard problems with Scala that are not necessarily interested in language advocacy.
- PaulHoule 15y agoThat brings us to point (1) of his article. He asks us to make a large investment in learning a language that might pay off in the future... might. My understanding of Scala is quite imperfect but the more I've learned the more it seems that it's got pretty facades built over weak wood. Rather than being a 'scalable language' it comes across like a fake town that was built as a set for a Western. Look at any beautiful concise code sample that they try to seduce you with and you find that any small change requires tripling the code size. Look at the chapter in the book on DSLs and the take-away is "don't try to build internal DSLs". Be it looking at the profiler running on on a Scala program that uses actors or finding that I never quite seem to get away with not having to declare types explicitly, I have a facepalm event every hour or so working with Scala. In my case, (2) has nothing to do with it. I'm quite familiar with functional programming, both in languages that support it well and languages that don't. These days even my PHP looks like LISP. (3) is certainly true, and I think it has something to do with the cultural difference that @speckledjim points out. Anyone who's got to work with Scala will definitely confront (4); if you're working in Java or PHP or some other commercially viable language you can probably solve a high fraction of problems by using Google and Stack Overflow. If you're programming in Scala you'll have a lot more success understanding the fundamentals of the language. If, for instance, you need to access Scala objects from Java (particularly the super-prevalent ones like Option and List) you'll find that cookbook-style documentation is 100% AWOL. Go look at the scaladocs for Option and List, however, and you'll be calling methods on them in no time from Java. If you insist on working with Scala, get a book and read it all the way through from the beginning, skipping forward when you don't understand something.
- fogus 15y agoLook at the chapter in the book on DSLs and the take-away is "don't try to build internal DSLs". Which book do you mean? Also, do you mind elaborating on why one should avoid building DSLs with Scala? In my own experience [1] I've found it extremely nice for internal DSLs. [1]: https://github.com/fogus/baysick https://github.com/fogus/baysick
- troutwine 15y ago
- elmomalmo 15y agoIf you're shipping products and making things of value using great tools (however fashionable they are) it means you spend more time shipping and adding value and less time dealing with the limitations of your tools.