What can make scala more popular?

I can vouch for that.

I don’t think we should add a comment system of any kind, tbh, but perhaps the site could do a better job of directing people to places they can ask questions and discuss things. Right now we just have the “Problem with this page? Please help us fix it!” link, which is a good start, but maybe we could also link to Community | The Scala Programming Language , something like that?

4 Likes

Please don’t be discouraged! More/better/polished documentation is crucial for Scala’s continued growth. As the Scala team lead at Lightbend, I commit my team’s help to make sure nothing stands in anyone’s way when working on the docs.

I can’t speak for others, but my team is very busy with PR reviews, bug fixing, implementing the roadmap. Unfortunately, that leaves no time to lead documentation efforts, but we are always happy to help where we can for documentation.

I am working on writing up our plans for 2.14 this week. One related topic that I will explain in more depth there, but I want to already mention in this thread is that we plan to reserve the summer for improving the newcomer experience and overall polish, before we switch full-time to core 2.14 development.

9 Likes

I think here is a good example which demonstrate that standard documentation is hard to do more friendly.

Also I think that there should be clear facts where scala is just the best.
Some time ago it is was absolutely enough to say:

  • string interpolation
  • macros
    :slight_smile:

It seems for me that scala take inspiration in big data processing

It can be undeniable fact.

But I really do not understand how the language can be the best in data processing until it does not have the best intergration with data bases, for example one of the next our most desirable features is better sql intergration.
It is very sad that we do not have tools to make the best integration:

Our average table has more than twenty columns. Sql integration and queries are a headache for us.

See also: named arguments in pattern matching

IMHO: Named access in dsl is a killer feature.

1 Like

I really like the idea of having a proper “The Scala Book” reference. I’m sure it would help a lot to onboard new people. I also think many would be willing to contribute — I would be, though I do not have time to lead such an effort, unfortunately.

Perhaps we could even just copy the structure of the Rust book, and adapt it for Scala. Or maybe “Programming In Scala” could be open-sourced, updated to Scala 3, and put on a website?

5 Likes

I wonder if there are a way to make contribution more easy. I had made contributions to scala specication it is not fast for beginners :)) I am not ready to repeat it for less important things. But good documentation consists of many unimportant “well known” things.

The structure is very important, but good feedback can be more important.
There are many stuff for that:

  • comments
  • wiki
  • wysiwyg editors

I just cannot see good feedback:

It is not critique. I understand that it is a matter of available resources.
I just wonder is it possible to make documentation writing\changing\getting feedback more easy.

2 Likes

This is not true.

I actually can’t tell if you are just using this as an example of some FUD you saw on the web, or if it’s something you’re still genuinely unsure about yourself.

Regardless of how you meant it, I have seen this FUD floating around too, so I want to be sure it’s absolutely clear to everyone on this thread:

It is absolutely not true at all that Twitter has somehow diminished their use of Scala or moved away from Scala.

Ask any of the Scala folks on Twitter, for example Stu Hood, who recently confirmed that “Twitter has about 10 million lines of Scala code” (!!) (reference: March 6 2019). I’ve also heard him say, in a recent conference talk, that the company’s Scala codebase is still growing faster than its Java codebase.

4 Likes

If we ended up with something like The Rust Book but for Scala, and available free online, that would be amazing.

We do have several excellent Scala intro books, that cost money, have remained in print and been updated for new Scala versions for some years now; further updates are already in the works. The most frequently recommended are “Programming in Scala” (Odersky/Venners/Spoon, from Artima) and “Programming Scala” (Wampler/Payne, from O’Reilly).

In the free-online-book space, check out Underscore’s series at https://underscore.io/books/ . It includes two language intro books, Essential Scala (for people who can code already) and Creative Scala (for new coders).

For reference documentation, this link has already been mentioned, but I want to highlight it again:

There is a great deal there already; there is also great room for improvement. Updates to existing sections are welcome via https://github.com/scala/docs.scala-lang/pulls .

Also welcome are entire new sections. There are multiple guides on that page only exist because some individual saw a need, wrote them, and submitted them.

I don’t want to dismiss any talk about longer term solutions (e.g. about how documentation work could be better funded) and grander schemes (about writing entire new books). I just want to also emphasize that a structure is already in place where interested individuals can make useful improvements now, today.

5 Likes

I would also add that a lot of the work on Scala 2.13 was, in fact, documentation work; this work was done by partly by Scala Center engineers, partly by Lightbend engineers, and partly by the community. See the links in the 2.13 release notes.

I just hate the lack of documentation and it seems no one cares

That is absolutely not the case.

3 Likes

http://www.artima.com/pins1ed/

http://underscore.io/books/

Regardless of what your definition of “documentation” is or isn’t, those are high quality freely available educational resources that stand up to anything else available for any language.

4 Likes

Simple ,make a coin/currency with Scala :slight_smile: like libra in rust.

For what I know, there are many guys in China learn Go for qiniu or toutiao are using that as their main language and they want to join those company for good salary.

Alibaba and pdd are mostly Java based.

Tencent is using Spark and Flink as their bigdata platform base.

Even I know there are some guy who can using Scala do do real thing at alibaba, but for maintains, we had to using Java even we are using Akka and know Scala.

What I want to say is that’s not the problem of books or free books, but good salary or/and killer frameworks.

When bigdata was hot ,people went to learn Spark and Scala, even their code was so bad, but that can get them well paid ,so they can “learn” it.

So, killers, come on more.

I have been developing a framework for ERP system on scala.
Scala have many great feature for that. And I think the main power of scala is in area of dsl frameworks(IMHO Kotlin and java win in lower level).

I hope that after dotty release there will be improvements in language which allows to do more better frameworks.
Scala have dropped some feature which would be able to be very important in frameworks. I don’t say it is wrong decision. But it is step back in area of frameworks.

1 Like

I don’t know if it would be considered high quality documentation (though a publisher recently offered to buy it from me), but I’ll be glad to donate my “Hello, Scala” book to the documentation cause. If it doesn’t fit what people initially want in a “book,” maybe it can be used as something to start from. The free, online version of it is currently available at hello-scala.com. I’ll be glad to donate it to the scala-lang.org website if people are interested.

11 Likes

That’s very generous, thank you! Personally, I think it should take the prime spot on https://docs.scala-lang.org/

We could move the introduction for Java programmers to a separate section that has a list of docs like that indexed by the language newcomers already know.

3 Likes

Thank you. I’m open to whatever you (all) would like. When I was talking to a publisher we talked about renaming the book, so if you’re interested in a different name (or names), I’m open. It’s basically a light but hopefully thorough introduction to Scala.

If you all want to proceed, or want to discuss it more, just let me know what you’d like/need. I’ll be glad to help however I can. Thanks again.

1 Like

Thanks for the second link. I have the third edition of the book. In documentation I mean something that explains the language constructs in a little more depth, almost like the Tour but with a little extra info.
@SethTisue
It is going to be confusing for example if Scala 3 allows Traits to have constructors/arguments and that is not documented. Then users find old information saying that Traits can’t have constructors then they see Traits with constructors etc. That is what I mean by facts and documentation. A searchable language spec would be useful.

I think the problem is when you google any construct of Scala you find the Tour and it seems like Documentation( because that is what the search result says), but then you are like where are the missing parts.

It doesn’t help that when you search google for say "Scala Traits"scala traits The first link in Google says “Traits | Scala Documentation” you click it and you are in something called a tour, but you don’t really notice it says tour because it just said Documentation.

It is not so much the actual page that says Documentation, but the confusing way google searches the site and shows the results. I am not sure how much of what is new as far as design go’s.

1 Like

The problem is though, when lots of people write bad code in a particular language/framework, that language/framework gains a bad reputation.

Once bad word starts to spread more and more decision makers decide to use something else. Like project managers decide to use Java over Scala because it is far easier to find Java Developers, it is a numbers thing.

The only thing that moves faster than the IT world is the business world. Hell if someone wrote a language named FARTS that made coding as easy as cutting a Fart into Amazon Alexa, then the business world would dump all other languages tomorrow.:rofl:

Scala has features that allow it. My personal opinion is that such features are in a specific area. Functional programming is very important. But it is not the only killer feature. For many businesses the good jdbc integration can be more important.

I’ve met the “…but it’s difficult to hire Scala programmers” from my boss. I said nothing.

What could help is if there’s a “if Business says…” (like “Simon says…”) doc that provides developers arguments as to why choosing Scala makes sense also from a business perspective.

I’d be willing to collaborate on the contents of such a page/doc, and I think it should be made slightly humorous. Cartoon would be great. Unfortunately, cannot take a lead in creating it.

  • Asko