is kotlin experiencing any of this, considering it is, at least from my viewpoint, scala without implicits?given that it is "intellij idea only" for now, shouldn't it be bashed even more?
--
I also work in the same company as the poster. We are currently running a huge Scala/Play project where the team is a mix of many young developers (< 5 yrs) and a few seniors. Overall it is a very pleasant experience. There are multiple other projects using Scala which share this positive feeling.It is difficult to explain these reactions, but they are common among my colleagues. These are senior programmers who are generally very good with any programming language/task. They will pickup something new and be productive in just a few days. They usually end up liking Ruby, Javascript, Clojure and for good reasons.
--
Work on giving more guidance what good Scala code should look like. For instance, develop a detailed, type based lint tool with configurable complexity. Or think about what useful design patterns in Scala are.
--
Hi Martin,I'm quite new to Scala and am taking the reactive course. I love everything about the language and also the direction where its headed. However, maybe I can contribute with some criticism from a "new user" standpoint without any bashing:1. Promote the improved incremental compile times better:From what I've read online on HN etc, you've lost many enterprise users since those are the ones that tend to work on large code bases and could not deal with the long compile times. They left maybe 1-3 years ago from what I can tell. I've only ever used sbt 0.13 and my compile times are incredibly fast. I think it would help if there was an in-depth (blog?) post on scala-lang.org showing that the compile times have massively improved. Right now, many people (including me) simply reply to comments regarding compile times with "check out the latest version". It would be much better if there was a link-able post showing the recent improvements.
Grzegorz,If Maven/Gradle can benefit from these improvements thru Zinc then make sure you emphasize on this too.This will attract many Java developers right away!
I think it is the major, non-technical obstacle to wider adoption and I'm surprised that Typesafe doesn't see any benefit of having a dedicated person which would solely focus on improving documentation on all fronts, day in, day out. That would, imho, be a amazingly good investment and a major win for Typesafe, its customers, the community and people interested in learning the language.
--
--
If only we had Hindley Milner type inference to enable our monads, then they'd come across!
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
With posts like this, it's not even worth it for you to get worked up about it at all, much less to try replying rationally. Sadly, this is just a product of the success of Scala and there's not much you can do about it other than just keep working on making Scala as good as you can possibly make it. As somebody above said, "haters gonna hate."Sure, it's worth noting the valid criticisms and trying to fix them, but if you let yourself get caught up in any of these "debates" you end up in a lose-lose situation where you come out looking defensive, arrogant, resistant to change, etc...I started programming in Java professionally in 1998 and I remember going through very much this same sort of crap. Sure, Java had its warts, but it was leaps and bounds better than most of the other options out there. I still had to listen to people trying to tell me that Perl was a better solution to build a webapp or something.There are still people on the internet who try to bash Java as being slow, just because they heard that once or maybe tried writing an applet 8 years ago and had problems with it. People just like to bash things, especially things that aren't whatever they've chosen to be their favorite tool and/or things they don't understand.Scala is an awesome language and I've seen a lot of people make the transition from various languages (Java, Ruby, Python) and almost all of them like it better because it manages to combine the best of these worlds. I could never imagine going back to Java and, in fact, I've turned down a few very interesting job prospects simply because they were Java shops and didn't seem open to going to Scala.There are a lot of things that could be fixed about Scala, but you know the vast majority of them and a good portion of them are being actively worked on. The best response to anything like this is just to rise above it and be as awesome as possible.
No, in fact I am not getting worked up about this, and certainly do not intend to enter the debate :-) The reason I wrote the post on this mailing list is not the specific blog post but the fact that there's s series of them and that they all got upvoted vigorously. That's interesting, because other languages do not get the same "attention". I was speculating what might be the reason, that's all.
Seems hardly a weekend goes by these days without another Scala rant that makes the Hacker news frontpage.This week-end's edition is called "Scala - 1 Star - would not program again", and it's by someone who from reading his post seems to have written Scala all of two weeks after coming form Javascript. I think the interesting bit is not so much that these posts are written, but that they are upvoted so much.
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Unlike their reactions (targeted at trying to calm their communities down), your post is pretty much a call to arms..
That does seem an awful lot immature. I expected better from the creator of Scala.
Yeah, it's not like there's generally a broad group of programmers (across various languages) to be found to hate on one particular language .. like say for PHP or Java or JavaScript .. or, you know, C++ ..
Stop victimizing yourself, stop blaming others, and man up. Because in contrast to all those other languages in that list above, Scala seems to be proving Bjarne wrong, as it is a language that people both complain about and don't use.
What I see, trying to teach Scala to a medium sized team of Java developers (20) and learn more myself from some Scala and Functional Programming experts:
" we have fixed the IDEs (thank you IntelliJ and Eclipse teams!) so this
is no longer that much of an issue."
Yes, things are better! No, this is not done, keep up the good work and keep making the IDE and compiler faster. A few battles have been won, but the war is not over. The poor performance and bugs in ScalaIDE have lead almost half the developers here to IntelliJ from Eclipse (but it has other issues). I'll leave the details of that for the appropriate mailing list.
On Mon, Dec 2, 2013 at 5:10 PM, Simon Ochsenreither <simon.och...@gmail.com> wrote:
I think Andy is spot on. I have also mentioned it a few times in the past, but progress is pretty slow because everyone is busy with dozens of other important tasks.
Currently, we are just not where we should be in terms of beginner-friendly documentation, short articles about specific topic, blog posts on scala-lang.org etc.
I think it is the major, non-technical obstacle to wider adoption and I'm surprised that Typesafe doesn't see any benefit of having a dedicated person which would solely focus on improving documentation on all fronts, day in, day out. That would, imho, be a amazingly good investment and a major win for Typesafe, its customers, the community and people interested in learning the language.
Agreed that better documentation would be great. There is a problem in finding the right person to do it. Engineers are often not very good at documenting, or do not like it so much, and technical writers are quickly out of their depth. We'd need to find a knowledgeable person who likes to do these kinds of things. Who would be able to fund this is another question, but given the right person we can think about that next.
Agreed that better documentation would be great. There is a problem in finding the right person to do it. Engineers are often not very good at documenting, or do not like it so much, and technical writers are quickly out of their depth. We'd need to find a knowledgeable person who likes to do these kinds of things. Who would be able to fund this is another question, but given the right person we can think about that next.
--
You received this message because you are subscribed to the Google Groups "scala-internals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-interna...@googlegroups.com.
--
--
You received this message because you are subscribed to a topic in the Google Groups "scala-debate" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/scala-debate/153H3Ya4Nxk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to scala-debate...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Seems hardly a weekend goes by these days without another Scala rant that makes the Hacker news frontpage.This week-end's edition is called "Scala - 1 Star - would not program again", and it's by someone who from reading his post seems to have written Scala all of two weeks after coming form Javascript. I think the interesting bit is not so much that these posts are written, but that they are upvoted so much.
Twitter has done a great job of explaining how they use Scala and to give back to the open source community with things like Finagle, but I think it would be great to have a series on how each of these companies tackled their specific problems and how Scala has helped them get there. It would certainly strike a chord with the HN audience.
I'm an entrepreneur bootstrapping my first startup. We are using Scala and Play and love both. I have been a Java programmer for a number of years and have only started using FP earlier this year. The way we use Scala is very straightforward - we mostly use case classes/pattern matching, map, flatMap and filter on collections (mostly just Lists and Maps), Options and Futures. Our code reads like a children's book. Together with Play (just starting to use Akka explicitly now) and a couple of plugins, that covers 90% of our needs.What I think could be done is to put more focus on Scala-related success stories in well-known technology companies. There is a page on the Typesafe website that lists some of them: http://typesafe.com/company/casestudies, but they leave out most major companies using Scala (even if they don't use the entire Typesafe stack): Twitter, Foursquare, LinkedIn, Tumblr, Klout... These are companies that needed both great scalability and expressiveness and in several cases they switched from another language/stack to scala.Twitter has done a great job of explaining how they use Scala and to give back to the open source community with things like Finagle, but I think it would be great to have a series on how each of these companies tackled their specific problems and how Scala has helped them get there. It would certainly strike a chord with the HN audience.
No, in fact I am not getting worked up about this, and certainly do not intend to enter the debate :-) The reason I wrote the post on this mailing list is not the specific blog post but the fact that there's s series of them and that they all got upvoted vigorously. That's interesting, because other languages do not get the same "attention". I was speculating what might be the reason, that's all.
Cheers- Martin
Hi,I work on Ceylon, and I can tell you other languages get the same fanatical reactions for the same invalid reasons, and way more frivolous ones as well, such as whether or not the language author wears jeans (this is unfortunately a true story).When you say Scala doesn't have "Scala has no traditional community" I'm not sure what you mean, but I can tell you that the first wave of trolls that bashed on Ceylon where advocating Scala, but not in a reasoned, reasonable way such as compare pros/cons, which would of course be fair and acceptable. I suppose it is sort of a sign of a large community to have trolls within it attacking other languages, and trolls of other languages attacking from outside ;)
Trolls are trolls, no matter what language they defend this month, because it's likely to change the next month. Just don't pay attention, or respond to the false claims where there are even any claims besides hand waving, as you said in a polite way.What I find reassuring is that behind the scenes, I regularly have very nice conversations with TypeSafe employees, like Joshua, as well as with the guys behind Groovy or Golo, and those sorts of interactions are a lot more interesting than trolls trolling ;)
Cheers!
On Monday, 2 December 2013 23:01:52 UTC+1, Martin wrote:No, in fact I am not getting worked up about this, and certainly do not intend to enter the debate :-) The reason I wrote the post on this mailing list is not the specific blog post but the fact that there's s series of them and that they all got upvoted vigorously. That's interesting, because other languages do not get the same "attention". I was speculating what might be the reason, that's all.Cheers- Martin
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
I am very sorry for that! I hope that things have calmed down by now.
I know it's been talked about before, but I think a really big problem is that newbies opening up the API docs for anything in the collections are bound to be pretty quickly overwhelmed by the method signatures. Obviously the "complexity" is necessary and it's pretty damn impressive how well Scala does at giving you back the right type, etc., but perhaps something could be done to make them less intimidating to newcomers, since this is certainly one of the first things they will encounter. Maybe a way to show a simpler signature by default with an expand button that shows the full thing or something?
Hi Martin,
2cents from a scala noob: I think to improve the perception of scala there should be more effort put into documentation. The scala doc is nice compared to javadoc and the search is really cool. What I miss though, are comments or examples from the community and/or simple cookbook in the style 'how I do...' , ideally referenced from docs site (the comments do not need to downloadable though) . As an example: how do I modify a an attribute value in XML ? I had to look in the docs, but that did not reveal a clue , finally found some examples at stackoverflow. It's a simple thing to do, but for noobs like me it's not clear and and it's a thing I won't remember. (well, I gave up then and wrote xslt script)
I also like python's doc site full site search where it's easy to find by keywords and at least get an idea what I should be looking for (try to look for process). Sencha has excellent documentation for ExtJS with community comments and sometimes help to understand how to use some features.
It's needles to say that comments and cookbook should be reviewed and kept relevant for scala versions, otherwise it leads to confusion and despair.
If the docs could be looked up from IDEs that would be awesome
B
Martin and folks,There is a lot of great discussion here, and I'm late to the thread. But I'd like to add some support for BOTH the "Scala Is Hard" folks and the "Scala Is Great" folks. Since I think both are true in some sense.In one context or another, I've programmed since around 1974, and I learned more than a dozen languages and used at least 9 extensively on the job. (I've even programmed Forth for money! :-)My general approach is to learn enough of a language to get started with solving a problem, and then get more into the details - the nooks and crannies as it were - as I use the language over time. So when I heard about Scala a couple of years ago, I took the same approach. I read a good chunk of Martin's book, and I loved what I found, so I used Scala to write a new version of a problematic production subsystem, and integrated it with the rest of our Java code. I used the basic language syntax, and Actors, and some of the functional programming features of the language. I liked the language, I liked the efficiency of the syntax, I liked the result, and it worked like a charm. But, I must admit, I did not read ALL of Martin's book, or all of the other book I bought. Looking around the web I saw some complicated looking Scala code, and basically just ignored it. Anyway, I was a Scala convert. And started telling good developers I knew about my experience.I got distracted by non-coding stuff and iOS programming right after that.A short time later I ran into a "Scala is Hard" post. My first reaction was something along the lines of "Really? That's weird, I didn't think it was so hard..." But that prompted me to get back to Scala and look at the bits I had not gotten around to before. And then I had my "Holy Cow!" moment. There is some complicated stuff in there! And after working on better understanding and making more extensive use of the type system and the like, I did get the feeling that, relatively speaking, Scala was more "complex" and "harder" in some sense then the other languages I had used.
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Now it is a couple of jobs later, and we are starting with some greenfield development. We have a team of mixed skill levels. So I've been starting to mull over my Scala strategy.- Use it and try to get everyone on board?- Encourage the really awesome dude we just hired to use it, and give other folks the option?- Not use it and wait for Java to get hip?- Maybe it's time to get back into Groovy...Honestly, I'm not sure at this point, but I've got to make a decision soon. So...
For instance, people might find structural types hard (or not).
"There are only two kinds of languages: the ones people complain about and the ones nobody uses." ~Bjarne Stroustrup
If we try to dumb down the language, the way its presented, and the community in order to cater to stubborn minds, we'll end up with neither a smart language nor a thoughtful community.
val lastForums = ann match {case a: ProxyAnnouncement => a.forumscase _ => Nil}
Hanns,It's never a question if somebody could learn it.The question is: why?Here is a copy&paste from a popular library:"* ^^"._? #> (a.!?(1, Get())) must be_==(Full(Answer(1))) ?~! eventually
Can you explain what it means? If you take it item by item it all makes sense.Now if you use 10-15 libraries, all of them start to "innovate" like this, when do you write actual code?Now compare the DSL with a random Finagle code:val lastForums = ann match {case a: ProxyAnnouncement => a.forumscase _ => Nil}If you know Scala, you understand what it means.No need to look for "right falling domino sign" or "Admiral Ackbar operator"; you can actually be productive.Csaba
Seems hardly a weekend goes by these days without another Scala rant that makes the Hacker news frontpage.This week-end's edition is called "Scala - 1 Star - would not program again", and it's by someone who from reading his post seems to have written Scala all of two weeks after coming form Javascript. I think the interesting bit is not so much that these posts are written, but that they are upvoted so much.
--
You received this message because you are subscribed to the Google Groups "scala-internals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-interna...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Hanns,It's never a question if somebody could learn it.The question is: why?Here is a copy&paste from a popular library:"* ^^"._? #> (a.!?(1, Get())) must be_==(Full(Answer(1))) ?~! eventuallyCan you explain what it means?
--
You received this message because you are subscribed to the Google Groups "scala-debate" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-debate...@googlegroups.com.
Would be interesting to explore a SIP-18 addition for Java semantics.
Import language.javacompat.stringAdd etc
+ we should do something about operators. I like James Ward's idea to mandate an alphabetic alias for every operator - at least people would know how to pronounce them then.
Would be interesting to explore a SIP-18 addition for Java semantics.
Import language.javacompat.stringAdd etc
I would be OK with providing an annotation people could optionally use to give a name to a symbol, which could pop up in IDEs when someone hovers the mouse over the symbol. But I wouldn't mandate it and certainly wouldn't recommend people make aliases. My take is that if the meaning a symbol is obvious to your users, it just adds clutter to the design to also provide an alphabetic alias. Otherwise, the symbol is non-obvious, and you should probably *only* provide an alphabetic name and not use a symbol.
With one traditional non-commutativity of +:"a"+Set("b","c") != Set("b", "c") + "a"Thanks,
-Vlad
I do so wish + would not turn into a world-eating monster whenever it got so much as a whiff of a string.--Rex
Would be interesting to explore a SIP-18 addition for Java semantics.
Import language.javacompat.stringAdd etc
It would be a pity to let the "hard" parts distract you from using the language as a whole. We can try to soften up the hard parts, either by better explaining what they are, or by clearly labelling them as specialized (as we did with SIP 18). But to do this, we have to first know what they are. So, I am always interested in getting concrete examples about what people find hard. Here, I do not mean small syntactic quirks (every language has them and everyone can live with them), and I do not mean programming paradigms (i.e. sure functional programming is hard for someone who has never seen it, but that does not mean you should not learn it!). I mean more the things in between. For instance, people might find structural types hard (or not). I know many find existential types hard. If we have better data about what people find hard we can think about how to simplify, and I think this would be a very worthwhile undertaking.Best,--
“Every great scientific truth goes through three stages. First, people say it conflicts with the Bible. Next they say it has been discovered before. Lastly they say they always believed it.” – Louis Agassiz
At the risk of showing my age, I can remember when C++ and OOP were at the same point Scala is at. All attempts to introduce C++ and OOP at the company where I worked got a smackdown from the management. “Too new, too academic, etc...” You know the rest of the story: within two years they were a “C++ shop.”