KEYNOTE  Simply Scala   Martin Odersky
1:01:42
Code Coverage in Scala 3 - Chris Kipp
42:56
Пікірлер
@kemal7557
@kemal7557 18 күн бұрын
Really cool presentation
@Hugobros3
@Hugobros3 21 күн бұрын
not sure the grammar size metric is that useful ... most people would agree c++ is a vastly more complex language than c#, for reasons that are harder to quantify (general insanity of the compounding language features and warts)
@leandrocruz
@leandrocruz 4 ай бұрын
Congrats for explaining a complex topic in simple terms
@mav45678
@mav45678 9 ай бұрын
19:05 10 MB should easily fit in L3 cache of modern CPUs.
@HongjianWang
@HongjianWang 9 ай бұрын
the visualized example on invariant, covariant, contravariant are so helpful. i have been struggling for years. not any more
@MrDejvidkit
@MrDejvidkit 10 ай бұрын
Cant wait to have it in scala 3 :)
@JimmyArcanum
@JimmyArcanum 11 ай бұрын
739 living legend
@andrewroby1130
@andrewroby1130 Жыл бұрын
I really appreciate you and the team making this template!
@LosingNemo
@LosingNemo Жыл бұрын
Many thanks Pawel, this is very promising work and superbly presented. I hope you have been able to advance things towards the mainstream since this was posted.
@carnelyve866
@carnelyve866 Жыл бұрын
Amazing presentation. Thanks to the presenter.
@sergeibatiuk3468
@sergeibatiuk3468 Жыл бұрын
Please please please build a proper support for Scala on Eclipse
@燕贻陈
@燕贻陈 Жыл бұрын
In my opinion, kotlin's with(scope) semantic are more clear than scala3 's using(given) , but sometime life is hard to choose between miserable and concise
@rabzu
@rabzu Жыл бұрын
Tooling, version compatibility
@CoreyMinter
@CoreyMinter Жыл бұрын
Nice presentation.
@BenHutchison
@BenHutchison Жыл бұрын
Hi Matt, excited and inspired by the upcoming type-system capabilities you're working on, eg for typed linear algebra structures. Your work absolutely is and will be useful in industrial and applied Scala. Expressive types are often the most cost-effective way to prevent bugs and resist bitrot. Yet there are still a lot of program- and data- properties that remain cumbersome to express in types.
@PlatinumDragonProductions999
@PlatinumDragonProductions999 Жыл бұрын
I just typed "scala-cli" at my Linux command prompt, it installed JVM 17, and then it started up! I'm not easily impressed, but I'm impressed. Very cool!
@souluss
@souluss Жыл бұрын
Inlined ZIO? My initial reaction is that it will pollute entry-level libraries and the effort will contradict the entire first part of the talk, i.e. it will make basic code more difficult to understand, with compiler bugging newcomers about capabilities and whatnots. Now if something is ZIO, it doesn't try to hide its ambitions in controlling resources and effects, while people learning Scala can choose non-monadic libraries to work with. Nonetheless, it might push better programming standards to broader public, so the resulting ergonomy will be critical in weighing these trade-offs.
@goofy6779
@goofy6779 Жыл бұрын
Thank you
@micknamens8659
@micknamens8659 Жыл бұрын
Is the Scala 3 type inference/checker as good as that of typescript?
@AdrianBoyko
@AdrianBoyko Жыл бұрын
Nothing has zero inhabitants - check! Unit has one - check! Bool has two - check! Durian has six? - 😵‍💫
@blacknick3931
@blacknick3931 Жыл бұрын
Great video! This talk really help me become more understandable in Scala Type System.
@ashwinbhaskar6642
@ashwinbhaskar6642 Жыл бұрын
is the live charts code on github?
@NB4X-hz1fn
@NB4X-hz1fn Жыл бұрын
Great talk, so helpful!:) didn't know anything about "transparent inlines", it's cooll! 14:15 would be really cool if one could see your mouse pointer, more easy to follow the many examples.
@i6g7f
@i6g7f Жыл бұрын
Very interesting talk! Thanks a bunch!
@AI-xi4jk
@AI-xi4jk Жыл бұрын
No matter if I’m able to program Scala daily or not I always cherish all the things it taught me and try to apply those ideas at work. Thanks Martin and team!
@BenHutchison
@BenHutchison Жыл бұрын
Thanks Sebastien, I learned an awful lot by following along from home, you covered so much ground..
@misaacsable
@misaacsable Жыл бұрын
Who's the kid at 5:00 ?
@paulfunigga
@paulfunigga Жыл бұрын
scala js is useless
@fredgotpub871
@fredgotpub871 Жыл бұрын
Super intro aux ADT , merci !
@i6g7f
@i6g7f Жыл бұрын
Great talk, thanks!
@i6g7f
@i6g7f Жыл бұрын
As far as I know implicits will be kept, and given/using is an additional option in 3. Implicits will be deprecated in future? Don't think so...
@i6g7f
@i6g7f Жыл бұрын
Very helpful talk, thanks!
@i6g7f
@i6g7f Жыл бұрын
1:00:30 Scala 3 and IDEA works ok, yet sometime manual correction on imports needed, but not a big issue.
@i-am-the-slime
@i-am-the-slime 6 ай бұрын
It fucking stops working every 30 minutes. It's horrible.
@Kwpolska
@Kwpolska Жыл бұрын
I'm an ex-Scala developer, and I think this keynote is wrong in so many ways. Scala is not simple, and Scala 3 introduces many new things that make it less simple, starting with the new syntax. There are now two syntaxes, and while indentation-based syntax can work right (as seen in Python), the Scala implementation of it seemed broken and confusing when I tried it (with IntelliJ). Many new Scala 3 features are there to help type astronauts write even more clever code, which is the opposite of simple. Scala 3 also helps the clever code crew with even more macro stuff, which is cool and all until you end up at a buggy magical macro while debugging something. Scala jobs do exist, but they are very rare compared to established languages (Java, JS/TS, C#, Python, C++). This keynote also seems to be contradicting itself, since it starts with making Scala simpler, reducing complexity, using less functional stuff, and then introduces a new type-astronaut feature, and also re-introduces checked exceptions (which Java has shown are pointless, since in most cases, the exception will just bubble up to a top-level exception handler). This presentation claims that C#'s grammar is 4x larger than Scala's. I read through C#’s grammar, and some of those differences are caused by the grammar defining more of the language - for example, C#’s grammar explicitly names the "int" type 3 times, whereas Scala considers it just another class. Similarly, operators like / or <= appear three times each, but Scala considers them to be methods of Int or other types - so they live in the class library, not in the grammar. C# does have a few features that complicate the syntax (like LINQ), but I would say that C# is simpler than Scala, because it allows less "magic" - there are no custom operators, no macros, no higher-kinded types stuff, and just the right amount of functional programming. The Scala ecosystem is also complex. For example, ScalaTest supports 8 different testing styles, which is 7 too many. In the HTTP world, there's http4s, which has a lot of type astronautery, and which really wants you to know HttpRoutes[F] is a Kleisli category, which is a great way to discourage your average programmers. Error handling can also be very inconsistent, with some libraries throwing exceptions, and others preferring Either. All in all, I consider Scala an over-complicated language that tries to do too much at once. Kotlin does a much better job at being "a better Java", and people actually use it (thanks to Google adopting it for Android). Many other languages have adopted Scala's good parts without taking too much.
@i6g7f
@i6g7f Жыл бұрын
The Scala 3 intendation syntax works nicely,shorter code, fewer curlys, with IDEA e.g. no problems so far
@j-r-hill
@j-r-hill Жыл бұрын
I think, in true Scala style, it's possible that both of you are right.
@jmhimara
@jmhimara Жыл бұрын
I also think the "size of grammar" might not be the best metric for measuring complexity. Like he said, F# is larger than scala, but very few would argue that it is more complex.
@voltydequa845
@voltydequa845 Жыл бұрын
A gnawing resorting to vague critic. Though I have more experience with gnawers (or cheap trolls, under the concept dictionary of old irc days) than the others here. Some thought on the fly, for eventual tempted to take you seriously - the 'clever style' is a side-effect of all rich and higher languages (as Haskell, for example) - 'smart' people are less then the rest, so it is normal that programmers in smart languages are less than the rest - rich languages come with a price that somebody can express concepts difficult to understand by others - comparing with Kotlin is like comparing USA with Swaziland
@i-am-the-slime
@i-am-the-slime 6 ай бұрын
It's completely ridiculous to deny reality by claiming Scala is a simple language. I don't understand what can be gained by acting that way. Nobody wants to do OOP in Scala yet all the inheritance Bullshit is still there. No enums that work still. Newtypes are fucked up. Editor support is worse than 6 years ago. You have all the JVM Bullshit like wasting memory, extremely slow starts, jars and binary incompatibility, etc.
@paulfunigga
@paulfunigga Жыл бұрын
This is why almost nobody wants to use scala lol
@onemorelight2084
@onemorelight2084 Жыл бұрын
this is just language flexibility
@MeisamRivers
@MeisamRivers Жыл бұрын
I always wanted a printf that checks the arguments at compile time.
@julianavar3836
@julianavar3836 Жыл бұрын
@@MeisamRivers Me also, this is incredible. Idris is great functionally too, but we are making these constructs easier and easier to use. Scala is not there just there, but now we at least have a choice.
@CuriousCauliflowerX
@CuriousCauliflowerX Жыл бұрын
Since when is the number of grammar files a measure of simplicity? This shows that haskel is one of the simplest languages, but the language has a ton of ecosystem divergence with incompatible language plugins, so it's very complicated in practice. And so is scala, there's a reason people are leaving it in droves.
@voltydequa845
@voltydequa845 Жыл бұрын
Curious. I was thinking the same, though I do not have all that experience with Scala. The simple grammars, upon which can be built rich languages, can result in much higher complexity. In Italian we have two distinct words - 'lingua' and 'linguaggio', where lingua is language, and linguaggio is (a mean of) communicating by means of common (in the sense of shared) symbols (concepts, and the like). So 'linguaggio' is built upon the 'lingua' (language as a set of words and grammatical rules), but its semantic meaning depends on shared meaning (out of understanding) of its constructs. So the 'shared ways of expressing' help as much as with spoken languages. Haskell for example seems extremely elegant, but you get lost in composition and in decomposition (understanding) when dealing with problems with higher complexities. So the only solution is discipline where constructs perceived as weird by a certain percentage of coders get dropped / discouraged. As for discouraging I share his point about SBT - the fact that it is not easy to describe it (teach it) implies that there's conceptually something far from optimal.
@jlhidalgo
@jlhidalgo Жыл бұрын
Martin Odersky saying that Scala is a "clean and simple language" would be funny if it wasn't tragic (for Scala that is, which is not that much of a tragedy after all, and less and less every day). Scala is so painfully over-designed and over-complicated that it has never been stable enough, and it's taken an extremely risky, non-backwards compatible, almost decade long redesign of the language just to solve some of the most obvious issues and throw away many things that were plain wrong. Think about macros in Scala, for example... after three complete re-designs it's still a source of innumerable issues and doubtfully usable by the average programmer (maybe the fourth time will be the good one) And "no boilerplate"?? Yeah... just look at ADTs or pattern matching in Haskell or Rust or any other language that has them versus the same in Scala. Or wonder why almost everybody that uses Spark (pretty much the most relevant system implemented mostly in Scala) uses it from Python. Or why many projects are ditching Scala altogether. No, the blame is not on the users: not in the "traditional FP crowd", not in the tool developers, not in the library developers, and not in the casual users. The blame is on the language itself... and probably looking at this video you can see pretty much where (or "on whom") much of the blame lies. The really funny thing is that unlike back when Scala was designed, nowadays we do know that a complex language might succeed, if that complexity is justified because it solves some real problem. It has been shown by Rust, for example. Complex is not necessarily bad, if properly justified. Being in denial and lying about complexity, on the other hand... pretty bad, any time, indeed. The title of this keynote should be something like "Bad excuses, instead of a much needed apology, show the way for further failure". Or maybe "Turning 'embarrassingly bad' into 'barely acceptable' thanks to lots of (your) effort and pain"
@paulfunigga
@paulfunigga Жыл бұрын
You are wrong saying that most people use spark from python, at least here, in Russia, very few people do. I've worked at multiple companies and nobody used spark from python.
@spesterwecial
@spesterwecial Жыл бұрын
@@paulfuniggaHe’s wrong about a lot of things, in addition to being personally disrespectful toward someone who has graciously contributed a great deal more to industry and PL research than negative, bitter comments on the Internet.
@sosoga1977
@sosoga1977 Жыл бұрын
Wow wow wow, somebody has no appreciation for beauty. Scala to me is the most beautiful language out there
@j-r-hill
@j-r-hill Жыл бұрын
It must be a really thankless existence to be a semi-popular language designer
@captainbodyshot2839
@captainbodyshot2839 Жыл бұрын
Rust did not succeed by any objective metric
@PatrickGrandjean
@PatrickGrandjean Жыл бұрын
Awesome!
@jaypandya1154
@jaypandya1154 Жыл бұрын
Looks like just by restricting imports everything can be fixed in Scala 2
@yawaramin4771
@yawaramin4771 Жыл бұрын
Hasn't the async SIP been withdrawn? Surprised to hear that it's a compiler phase now and doing transformations into a state machine. There's no mention of it in the docs.
@konstiblum
@konstiblum Жыл бұрын
Scala-cli is amazing. It makes toying around with scala so delightfull.
@rockthejvm
@rockthejvm Жыл бұрын
Humbled to be mentioned in the talk! Will continue our work to make Scala accessible
@edmaphis9805
@edmaphis9805 Жыл бұрын
4:25
@rafaelkss2009
@rafaelkss2009 Жыл бұрын
Yo Daniel and Scala guys, girls and all, plz don't dumb down the language, we got enough bad languages around, but yes, without compromising the beautiful design, by all means do it! Good job anyway.
@i-am-the-slime
@i-am-the-slime 6 ай бұрын
Please do dumb it down. Remove the shitty subtyping and variance. Get proper type inference, make an Editor work with Scala 3.
@flwi
@flwi Жыл бұрын
Just discovered this talk and really enjoyed it. Very well done, Nicolas!
@kevalan1042
@kevalan1042 Жыл бұрын
Thanks for making Scala CLI
@kevalan1042
@kevalan1042 Жыл бұрын
Concepts here are explained very clearly - great talk!
@kevalan1042
@kevalan1042 Жыл бұрын
Couldn't the compiler easily quantify the times due macro expansion and explicit expansion?
@i6g7f
@i6g7f Жыл бұрын
it does quantity complexity which is proportional to time? see 18:55 .... use -Vprofile Parameter
@mbesida
@mbesida Жыл бұрын
Great initiative. Will it support multimodule setup with an option to build each module separately (and build all by default)?
@basmeesters4150
@basmeesters4150 Жыл бұрын
Iskra is really cool! thanks for this presentation
@markhathaway9456
@markhathaway9456 Жыл бұрын
That's great stuff. "Don't over-complicate it!" Using a URL to load & compile something directly from the net is very nifty.