From d40b8d7cb5975afc5438d0d367954bddd8e5bfe6 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Fri, 13 Jan 2023 13:11:56 +0100 Subject: [PATCH 01/10] reword scala main resources links --- _sass/layout/scala-main-resources.scss | 6 +++--- index.md | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/_sass/layout/scala-main-resources.scss b/_sass/layout/scala-main-resources.scss index 29c6260e0..d8d5de095 100755 --- a/_sass/layout/scala-main-resources.scss +++ b/_sass/layout/scala-main-resources.scss @@ -19,8 +19,8 @@ } .get-started { - @include span-columns(4); - @include shift(2); + @include span-columns(4.2); + @include shift(1.8); .button { @@ -34,7 +34,7 @@ } .learn-scala { - @include span-columns(4); + @include span-columns(4.2); .button { text-align: right; diff --git a/index.md b/index.md index da3a77fd0..585441759 100644 --- a/index.md +++ b/index.md @@ -13,14 +13,6 @@ headerButtonUrl: "/what-is-scala/" gettingStarted: mainTitle: "Get Started" mainUrl: "https://docs.scala-lang.org/getting-started.html" - subtitle: "API Docs" - subtitleLink: "https://docs.scala-lang.org/api/all.html" - links: - - title: "Migrate to Scala 3" - url: "https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html" -apiDocs: - mainTitle: "Learn Scala" - mainUrl: "https://docs.scala-lang.org" subtitle: "Scala Book" subtitleLink: "https://docs.scala-lang.org/scala3/book/introduction.html" links: @@ -28,6 +20,14 @@ apiDocs: url: "https://docs.scala-lang.org/tour/tour-of-scala.html" - title: "Courses" url: "https://docs.scala-lang.org/online-courses.html" +apiDocs: + mainTitle: "Documentation" + mainUrl: "https://docs.scala-lang.org" + subtitle: "API Docs" + subtitleLink: "https://docs.scala-lang.org/api/all.html" + links: + - title: "Migrate to Scala 3" + url: "https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html" # Scala backends From 358c443fb27c083948ca4dad56dcb08cb63e0203 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Fri, 13 Jan 2023 13:12:35 +0100 Subject: [PATCH 02/10] reword tagline; add why scala section --- _config.yml | 2 + _layouts/frontpage.html | 84 ++++++++++++++---- _sass/base/helper.scss | 65 +++++++++++--- _sass/components/heading-line.scss | 2 +- _sass/layout/inner-text.scss | 62 +++++++------ _sass/layout/navigation.scss | 3 + _sass/layout/nutshell.scss | 38 ++++++-- _sass/layout/site-main.scss | 2 +- _sass/utils/_variables.scss | 3 +- _why_scala_items/1-expressive.md | 4 + _why_scala_items/2-versatile.md | 4 + _why_scala_items/3-safe.md | 4 + index.md | 4 +- .../img/frontpage/scala-language-brand.png | Bin 0 -> 11157 bytes .../img/frontpage/scala-logo-solo-white.png | Bin 0 -> 2553 bytes .../img/frontpage/scala-logo-solo-white.svg | 19 ++++ .../frontpage/scala-logo-solo-white@2x.png | Bin 0 -> 5170 bytes .../img/frontpage/scala-logo-white-hero.png | Bin 0 -> 5792 bytes .../frontpage/scala-logo-white-hero@2x.png | Bin 0 -> 11898 bytes 19 files changed, 227 insertions(+), 69 deletions(-) create mode 100644 _why_scala_items/1-expressive.md create mode 100644 _why_scala_items/2-versatile.md create mode 100644 _why_scala_items/3-safe.md create mode 100644 resources/img/frontpage/scala-language-brand.png create mode 100644 resources/img/frontpage/scala-logo-solo-white.png create mode 100644 resources/img/frontpage/scala-logo-solo-white.svg create mode 100644 resources/img/frontpage/scala-logo-solo-white@2x.png create mode 100644 resources/img/frontpage/scala-logo-white-hero.png create mode 100644 resources/img/frontpage/scala-logo-white-hero@2x.png diff --git a/_config.yml b/_config.yml index 3f72a8ba4..617ac851b 100644 --- a/_config.yml +++ b/_config.yml @@ -36,6 +36,8 @@ defaults: collections: install_tabs: output: false + why_scala_items: + output: false scala_carousel_items: output: false scala_items: diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index ee21569e9..dc3dfedfb 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -18,8 +18,12 @@
-
+
-

{{page.headerTitle}}

-

{{page.headerSubtitle}}

- {% for release in site.data.scala-releases %} - {% if release.category == "current_version" %} - - Scala {{ release.version }} - - {% endif %} - {% endfor %} - - All Releases - + +

{{page.headerSubtitle}}

+
+
+ {% for release in site.data.scala-releases %} + {% if release.category == "current_version" %} + + Scala {{ release.version }} + + {% endif %} + {% endfor %} + + All Releases + +
+
@@ -99,6 +107,42 @@

{{page.headerTitle}}

+ +
+
+
+

Why Scala?

+
+
+
+
+ {% for scalaItem in site.why_scala_items %} + {% assign loopIndexMod = forloop.index | minus: 1 | modulo: 3 %} + + {% if loopIndexMod == 0 %} + {% assign codeSnippets = '' | split: ',' %} +
+ {% endif %} + {% assign codeSnippets = codeSnippets | push: scalaItem.content %} +
+
+

{{scalaItem.shortTitle}}

+

{{scalaItem.shortDescription}}

+
+
+ {% if loopIndexMod == 2 or forloop.last %} +
+
+ {% for snippet in codeSnippets %} +
{{snippet}}
+ {% endfor %} +
+ {% endif %} + {% endfor %} +
+
+
+
@@ -117,12 +161,14 @@

Scala in a Nutshell

{% if loopIndexMod == 0 %} {% assign codeSnippets = '' | split: ',' %} -
+
{% endif %} {% assign codeSnippets = codeSnippets | push: scalaItem.content %} -
-

{{scalaItem.shortTitle}}

-

{{scalaItem.shortDescription}}

+
+
+

{{scalaItem.shortTitle}}

+

{{scalaItem.shortDescription}}

+
More...
{% if loopIndexMod == 2 or forloop.last %} diff --git a/_sass/base/helper.scss b/_sass/base/helper.scss index 46c174028..9bec9eed2 100755 --- a/_sass/base/helper.scss +++ b/_sass/base/helper.scss @@ -3,27 +3,70 @@ //------------------------------------------------ .wrap { - @include outer-container; - @include padding(0 20px); + @include outer-container; + @include padding(0 20px); + @include bp(large) { + @include outer-container(880px); + } } .place-inline { // add vertical margin - @include outer-container; - @include margin(20px 0); + @include outer-container; + @include margin(20px 0); } .wrap-inline { // add vertical padding - @include outer-container; - @include padding(20px 0); + @include outer-container; + @include padding(20px 0); + @include bp(large) { + @include outer-container(880px); + } } .wrap-narrow { - @include outer-container; - @include padding(0 10px); + @include outer-container; + @include padding(0 10px); + @include bp(large) { + @include outer-container(880px); + } } .dot { - font-size: 10px; - color: rgba($base-font-color-light, 0.6); - margin: 0 3px; + font-size: 10px; + color: rgba($base-font-color-light, 0.6); + margin: 0 3px; +} + +.hide-lg { + display: block; + + @include bp(large) { + display: none; + } +} + +.show-lg { + display: none; + + @include bp(large) { + display: block; + } +} + +.col-lg-6 { + @include span-columns(6); + + @include bp(large) { + @include span-columns(12); + &:not(:last-child) { + margin-bottom: 25px; + } + } +} + +.flex-row-align-end { + @include display(flex); + @include flex-direction(row); + @include flex-wrap(wrap); + @include align-items(center); } diff --git a/_sass/components/heading-line.scss b/_sass/components/heading-line.scss index 827b1cd96..bb79a70ce 100755 --- a/_sass/components/heading-line.scss +++ b/_sass/components/heading-line.scss @@ -3,7 +3,7 @@ //------------------------------------------------ .heading-line { - margin-bottom: $padding-large; + margin-bottom: $padding-small; text-align: center; h2 { diff --git a/_sass/layout/inner-text.scss b/_sass/layout/inner-text.scss index 9c06e0414..f85cfdbc9 100755 --- a/_sass/layout/inner-text.scss +++ b/_sass/layout/inner-text.scss @@ -2,38 +2,50 @@ //------------------------------------------------ //------------------------------------------------ -.col-lg-6 { - @include span-columns(6); - - @include bp(large) { - @include span-columns(12); - padding-bottom: 8px; - } +.hero-logo { + background-image: url('/resources/img/frontpage/scala-logo-white-hero@2x.png'); + background-repeat: no-repeat; + background-size: contain; + height: 100px; + margin-bottom: 15px; } -.inner-text { - h1 { - font-family: $base-font-family; - font-size: min(2.85vw, 2.21rem); - font-weight: $font-black; - color: #fff; - margin: $padding-small 20px $padding-small 0; - } - p { - font-size: 1.25rem; - color: #fff; - margin-bottom: $padding-medium; - } +.col-lg-6 { + .inner-text { - @include bp(large) { - .button { - margin-bottom: 3px; + .button-row__container { + @include display(flex); + @include flex-direction(row); + @include justify-content(flex-start); + + @include bp(large) { + @include justify-content(center); + } } h1 { - font-size: 2.5rem; - margin: ($padding-medium / 2) 0; + margin-bottom: 20px; + font-size: 5.2rem; + } + + h2 { + font-family: $base-font-family; + font-size: min(max(1.6vw, 1.2rem), 1.31rem); + line-height: min(max(1.5vw, 2rem), 2.15rem); + color: #fff; + margin-bottom: $padding-medium; + } + + @include bp(large) { + .button { + margin-bottom: 3px; + } + + h2 { + font-size: 1.4rem; + text-align: center; + } } } } diff --git a/_sass/layout/navigation.scss b/_sass/layout/navigation.scss index 90960f33c..0cd2b7732 100755 --- a/_sass/layout/navigation.scss +++ b/_sass/layout/navigation.scss @@ -14,6 +14,9 @@ height: 43px; } } + .navigation-bdand-vfill-lg { + height: 49px; + } .navigation-panel-button { display: none; font-size: 1.333rem; diff --git a/_sass/layout/nutshell.scss b/_sass/layout/nutshell.scss index 38e4c23fc..4d171ae1b 100755 --- a/_sass/layout/nutshell.scss +++ b/_sass/layout/nutshell.scss @@ -18,17 +18,31 @@ .scala-items-list { .items-menu { + .scala-item-row { + @include display(flex); + @include flex-direction(row); + @include bp(large) { + @include flex-direction(column); // switch to single column + } + } .scala-item { - @include span-columns(4); + @include display(flex); + @include flex-direction(column); + @include justify-content(space-between); + @include align-items(center); + + // width + width: 33.33%; + @include bp(large) { + width: 100%; + } + + // max 3 items per row @include omega(3n); + padding: $padding-small; text-align: center; transition: $base-transition; - @include bp(medium) { - @include span-columns(12); - } - - min-height: 165px; .button { margin-top: 10px; @@ -36,6 +50,12 @@ padding: 5px; } + .button.button_expand-info { + font-size: $font-size-small; + padding: 5px 15px; + margin-top: $font-size-large; + } + h3 { color: #fff; font-size: $font-size-h3; @@ -50,9 +70,9 @@ } - &:active, - &:focus, - &:hover { + &.hoverable:active, + &.hoverable:focus, + &.hoverable:hover { cursor: pointer; background: $gray-dark; } diff --git a/_sass/layout/site-main.scss b/_sass/layout/site-main.scss index 5d8bed63c..893e45b98 100755 --- a/_sass/layout/site-main.scss +++ b/_sass/layout/site-main.scss @@ -6,6 +6,6 @@ padding: $padding-xlarge 0; } section:first-child { - padding: 10px 50px; + padding: 20px 0px 0px 0px; } } diff --git a/_sass/utils/_variables.scss b/_sass/utils/_variables.scss index d50b1f3af..759cd15a0 100755 --- a/_sass/utils/_variables.scss +++ b/_sass/utils/_variables.scss @@ -44,6 +44,7 @@ $base-font-color-inverse: rgba(#fff, 0.70); @import url('https://fonts.googleapis.com/css?family=Roboto+Slab:400,700'); @import url('https://fonts.googleapis.com/css?family=Kalam:300,400,700'); @import url('https://fonts.googleapis.com/css?family=Caveat'); + //------------------------------------------------ $base-font-family: 'Lato', sans-serif; $heading-font-family: 'Roboto Slab', serif; @@ -60,7 +61,7 @@ $font-size-small: 0.875rem; // 14px $font-size-xsmall: 0.75rem; // 12px $font-size-h2: 1.375rem; // 22px -$font-size-h3: $font-size-large; // 17px +$font-size-h3: 1.2rem; //------------------------------------------------ $base-line-height: 1.6; diff --git a/_why_scala_items/1-expressive.md b/_why_scala_items/1-expressive.md new file mode 100644 index 000000000..e3ed54748 --- /dev/null +++ b/_why_scala_items/1-expressive.md @@ -0,0 +1,4 @@ +--- +shortTitle: "Expressive" +shortDescription: "Scala lets you write less to do more. As a high-level language, its modern features increase productivity and lead to more readable code. With Scala, you can combine both functional and object-oriented programming styles to help structure programs." +--- diff --git a/_why_scala_items/2-versatile.md b/_why_scala_items/2-versatile.md new file mode 100644 index 000000000..6a3fa29a5 --- /dev/null +++ b/_why_scala_items/2-versatile.md @@ -0,0 +1,4 @@ +--- +shortTitle: "Scalable" +shortDescription: "Scala is well suited to building fast, concurrent, and distributed systems with its JVM, JavaScript and Native runtimes. Scala prioritises interoperability, giving easy access to many ecosystems of industry-proven libraries." +--- diff --git a/_why_scala_items/3-safe.md b/_why_scala_items/3-safe.md new file mode 100644 index 000000000..edc94d07f --- /dev/null +++ b/_why_scala_items/3-safe.md @@ -0,0 +1,4 @@ +--- +shortTitle: "Safe" +shortDescription: "Scala's static types help you to build safe systems by default. Smart built-in checks and actionable error messages, combined with thread-safe data structures and collections, prevent many tricky bugs before the program first runs." +--- diff --git a/index.md b/index.md index 585441759..bdbd322b5 100644 --- a/index.md +++ b/index.md @@ -4,8 +4,8 @@ layout: frontpage darkmodeCode: true # Header texts -headerTitle: "The Scala Programming Language" -headerSubtitle: "Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries." +headerTitle: "Scala" +headerSubtitle: "A programming language that scales with you: from small scripts to large multiplatform applications." headerButtonTitle: "Learn More" headerButtonUrl: "/what-is-scala/" diff --git a/resources/img/frontpage/scala-language-brand.png b/resources/img/frontpage/scala-language-brand.png new file mode 100644 index 0000000000000000000000000000000000000000..719a7573fd4ab5f006866856566212931b146840 GIT binary patch literal 11157 zcmbW7XE)WCJ3?kY>PtR*5^5Jay_5~4=$M2p^gXIY&HA}m2f@4fesh_XbB7FOSA z(WAZh|MC6setGA4?%loj&VBBjnK?7({LYEhRDVuE%1DZXgG2H11zZ~k2R8-ypG!gn zoSFMfNN{kVI4|MyI(|8OsCz*i-dX2)yOK*gpVPcJ(_RS?Kede(XJ$~Q95iI!XBnrb z)q=~f2-v8q=DBXQV(_adM_6$s!=if(G1DM%kM zI!;f9K^_#P48nbz5CW6PMyfw7pzl|ExTOh-vWYdhhQt`h=it>^Wd1aSuh;*LAe0CF zP#{=OZb5Ea!vbW$&YT5g92a~f5j6rMx^fZlhB%}s2+a!nh3BZK?F7``wH7BCCT;no z9&Mk4bb6djIKxR2F;UkLA9ewnFhdN94)E%+z5ebTEDkL5{7AfEc(9)l?fiFi;7*9A@k!K@ zNoe%*RAiSL+?N{Nyq*T~3hS5O`$Im-E*@D~1Hwco7*}?hdo?i$#nR z6DuCn_eey|$U7vzf)fl#xFrs>zcLy1O}%I1?L&hOZRn98bQIvvi}Xi^8AMj++rpeC z9lGG~ErXlSI)|jNwppQaa7BX2)GN5Uk7p~sl20aBtM7Aq$2(+I&F($JC~5eK_ehm` z4e6)~+%V$>TmCnAA^OMd%~jrfv+GKTl2+ID@#Vg6tI7J2->%UMnY>5sOX|faAETuO zoe5RAZ)2aoQJ8A%c6aQyt!kAzDC0g1%9%20H%N1W^D ztG;a=(`Tp@X#mH3fLQ(x2^2-ZD^-5hLOU(p)V^z`&v9|kirFxXok z8Lx6bedj@xfZiFtnxHP?N7E7XGQj1$I8tA%Q?W>Ry(fGV6cl9Tb<3dt(3IAC|knEwv- z0KbGg^fC9+=^87Hd*>nqnDBB0aQs+!fv~8kkDr5sgO7)YM^0seo0yb7FJy{^g(Y`v zY>ZM#>$X|aIoiBOcZ>s0-Ttiw2h^|AqxPP<#j%h;8H^1l3OzL|OGb+eDR_yDs z?!Kf7{9vGqP~Kh$2BiSS4^9H|qGMxYk9Kx;N`c=}O)g{9!8$3TuPI384pT%B@dhetta#5WlO|PTs`tTGJp4p7-S>`{E3XF=3HM?Fw=&J$ zmb)D%md-UpNr<3$btL(kTp~}OJ{6IaWMXAvV#?0VmHGIJ^Yy%w=(j9Q*5sk7rKLUn z+`vIs9VsWL#`WV%JUeT;_`!$GZv}3T{wjy~TAF&$9| zNK=Tm=R&Dx`uv%zz3Mm~GcM-({u#F&%LZ$Y-g6bmANC0t#I2BWehCE1k z@-JTBevY+J)+-L`mymlt(zRlTvO}50fRQfs zl0a>G&AW*)hhIH@FQLwvuJUkl$E!}0%k6#ZFobZ3o0*b0hQ|pI^0mDrpPSe*Eh!?1 zJAJK11$}US?lf0p*}plO-JApz23oyR1Vn4it0ux-)sacB!2Vr1rWve-L;O{?UiIW9 zEbh0+tv|IXG39UOW>R@tQj+;c|VE z^Wf><#cWRKyi?PAm7==Cm|I-Uc|z9TWkt`LI9Rl zhEwH}dCz!}rtQP_e4vt1VSOncyTT?O`!KK6f#s$GEo1&s<9trfz9o)jTq{?m|l&Iss5CH@a@-h??vyyB!8**d5??PbkiPx7Su9Pg7OLP&&wt5VNLx5E+TqOXh;5187&Bw;NjFm7TJ0RaIK`1tsd z<^M?`EG#S}An>Uv>k}BSPX5i75oJMMIVQj;Q7d64nC91N_8^L@;W|9_YCZlS(CfvO zOVmoi3*F;E@`kdoj#T6_Ia)M+g$A8y^p%~fdC6yCr&MQGO*Gs2vjOkd)=IHiPB#(Z zA;yac!;trtc$C*3|9DJPDMeuh94!SO-RxY}UJ88tZ)dBGuJbP9A|>8zE!^*kqvMHC zR8%aVtuU-_D=bt@ej}}^RfQ+D}P%0DRis#R1P}G8bGU4o5Cg|O>0z{Xdx{~DW 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 literal 0 HcmV?d00001 diff --git a/resources/img/frontpage/scala-logo-solo-white.png b/resources/img/frontpage/scala-logo-solo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0815cf5922dfa5c96321fe549394e482d165c9 GIT binary patch literal 2553 zcmV6^REVB%l&hExCy1$6ZWfJN9nY_IiKJpl_Hxrfc^{6320}{zxO+v$H$< z`ONH$J)f_KFvcLFND@NYB6TUELd*le@4}f;6ytjU@J|5vYWRS1JohtnOaj1n0O0!o zaD`XC7QTtoEJhLl-T{F30N{N9&_l<2xSuvLW&z-B0C*PwZUDgN_H*({7enIR{_8wl z0|5D;7dvTUqygZIeDK3Z;PU`5H>it`vKTo4xWHQ;NxuOAmjEDpR27bb7)W{%0AA+_ zNq+$Vmii2OM~Y#I@hb1m_*&!x9SX3((@;r23x^fs6#&TaXF1D9?->AiO-QpmZ{)`( zg+Grm{$2%u1OUW2L7kJul;^Jn0GQyPCwZAu@l6&5_$wD6@{l6@W32}$L~F$E>DVyt z6#~X$2pEeYU@V4!u^0lzVh9+EAt1_P#KRd;7DEeXL|Kdx006)3R|dV-I$xhSb)b~4G@H$h<>h7n@#Dt|Ap}%a1;*GfZr{HB zbNnpgwD~4o&-0!bhOxQ4yi8YCRus?kh$Kl0ih$ro`*+Lb@+JU$B%XZI#pw9H|4FOW z+S=II=&Y=)qzuDweBYO3S;hqMc+U(9*dr*VADnbCb{)rAGYq4;xw+X|Utd?7&8F&k z9!QcDlV#aa6a_Fn54?OaTx4X$V2m|g*IlmVwk?~uiLi0Z5T$o(P*f(S}n1)wFS0q`;=0=$1ErA zy{Ofn1>g7ggqWC^h~2nxBdclJ`Eb!;iP55zR$SMuce`E3vMg_BX9sGvnp~^Z2$II< zoH3?j>q(O2Bl&|84}gOu3V^TE)6?peD_5+ksi`jkKnei1!{wC$31U!6w>{4@9LKRc zosQpXwWw*DZnN1W^?E(lZnyVZhf<2&b#G3SBnkWbUiXc~VgtC1z3FssOh5rrsg!)_ z(xuM){Cqr_OkN8Wb;9Q=+#l(=CIDEBF`F^gp_JN~T-U_`tle(6-QC??W}2pC7)H!A zO^tWyy_?|E7ZO&ng#*HeZRvi%x&o0A*=#m8KR>^7=FFLFI-R~q2ziz_OTrn-+S=Mr z8jZ&FcDtRYlsb;%bZy&~JDrZ?x-RuRj|COM|0-9x*|Y~v)KAA`)h_35xUDrFg zTn@W-ERjg0R8_@RE)YTrLnQn>>{|?lFOQ{o{6&`k+%NE0j47UqJP_se!#qkuMvoXs z_Crom;&B=>7a-14l227f@!XCSuxCUylD?;BU~kwtzWW(1j7=l~V=)Ab#SkzSL%>)J z0b?-)jKvTTWifgdXre4ekEI%AG5#3Nh^iRB0)TIaGb1I2=XnnpW8dQcXl#d%pZfo` zGRC%ccXuB@dh`gx63~o(SC-`mw{G294VOKY@fnoTk1fmk6h%>3A7dIj!4Co8M`GrQ z6oWC==ytoSJ3Bkojg1XwZEY>x>2xS#OqL{k5@ZO1Q=W5;x59ZRK@1b4aV*Q)+}hf5 zDwRrVdwV;MelDdH?MqdbWx5})7Jc6f7cQ9L{817E$!$1}vuT>9(P%WJYPFiIR4VAw zd%o}EI&1=49bNi^7}aPKG!nZcG<@H$bi3V}X__s=FqCGqDOami*)R;o zP2@xnnjm;C2dYdAOPHOVRjyvW%5+^vx6lojJqj^goX$MY!$Hk*9H-N2wcJLd!Rqxo z2BLiC*bAi5XkvqM>XA710IUPAclq*VXJKI>l}e@F5sLNQGGaf|s!1uuPz4M=>A0?I z*|y!<-Q9If(Nr;l+x=+AZ()qUTMGg!$RQW z1~C~t(ud5=&AFvg$(x*h<_CKOHUpw+RF zGMS7tH#cX^%*-g6OlDeD)hR;A)FG;RwiqI~FmLl1jf>n*9T@t#^_YTLBbUpO>FH@! zC=}4OmlKIZR#B9Net(NNaxwadbB4!hT;}3rUUW`CP>jcb|A#&8g(u|m`FK8`w{y9i zoylZC*Y%95szphX&K!#7%i&;Rh$xrKD&Oa-#P_+taD>?~c_gjtdQ8`K2SXHcxtyEL zW@TO1bqrmQWqInD!xIiK26yRS;VJDn&P1(NyGSX0Q`59XP1AH$Rnv;1U?6L@-`}4` z1bxMLk3WmDuw{hK^KyJ3&GQh+37(hbp$fx~dK(=2iV@Y2gdQ=Ze#>7`g%reljxl!B zp2AoR0b?-)jKvTz7DK>T3;|;?1VmYkWH=+rVtC<N}@i7lo!ky=T^D;k3Pm>rO0Qd(0+~=Ex{As@zILTt*qSQl9 z`uF^`dYB8IBr$OFkG})Jp8?=60Pq+9HU?S2D2l=OCPCQc|HcLQH%~p^4F-wh6vN?z z+`j>x + + + + + + + + + + + + + + + + + + diff --git a/resources/img/frontpage/scala-logo-solo-white@2x.png b/resources/img/frontpage/scala-logo-solo-white@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d20a396c47161b6dd22ad9875a13726992a1cd GIT binary patch literal 5170 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 literal 0 HcmV?d00001 diff --git a/resources/img/frontpage/scala-logo-white-hero@2x.png b/resources/img/frontpage/scala-logo-white-hero@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4eafb479fc9b9821bd58053ed53f2f539c1ae2f2 GIT binary patch literal 11898 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%0Av4lYO>EcoS4O&h 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 Date: Fri, 3 Feb 2023 17:13:18 +0100 Subject: [PATCH 03/10] remove nutshell, add use cases --- _config.yml | 2 + _data/awesome-scala.yml | 2 +- _layouts/frontpage.html | 154 +++++++++------ _sass/base/body.scss | 2 + _sass/base/helper.scss | 4 + _sass/components/code.scss | 2 +- _sass/components/heading-line.scss | 4 +- _sass/layout/nutshell.scss | 218 ++++++++++++++++----- _sass/layout/runs.scss | 7 +- _sass/layout/scala-ecosystem.scss | 10 +- _sass/layout/site-main.scss | 12 +- _sass/utils/_variables.scss | 3 +- _scala_items/1-seamless-java-interop.md | 64 ------ _scala_items/2-education.md | 80 ++++++++ _scala_items/2-type-inference.md | 49 ----- _scala_items/3-concurrency-distribution.md | 29 --- _scala_items/4-traits.md | 49 ----- _scala_items/5-pattern-matching.md | 38 ---- _scala_items/6-higher-order-functions.md | 37 ---- _scala_items/7-education.md | 82 -------- _scala_use_case_items/1-backend.md | 94 +++++++++ _scala_use_case_items/2-data.md | 49 +++++ _scala_use_case_items/3-cli.md | 83 ++++++++ _scala_use_case_items/4-frontend.md | 81 ++++++++ index.md | 12 ++ resources/img/frontpage/notebook.png | Bin 0 -> 194904 bytes resources/img/icons/icon1.svg | 107 ++++++++++ resources/img/icons/icon10.svg | 88 +++++++++ resources/img/icons/icon11.svg | 75 +++++++ resources/img/icons/icon12.svg | 84 ++++++++ resources/img/icons/icon13.svg | 64 ++++++ resources/img/icons/icon14.svg | 138 +++++++++++++ resources/img/icons/icon15.svg | 75 +++++++ resources/img/icons/icon2.svg | 111 +++++++++++ resources/img/icons/icon3.svg | 75 +++++++ resources/img/icons/icon4.svg | 108 ++++++++++ resources/img/icons/icon5.svg | 142 ++++++++++++++ resources/img/icons/icon6.svg | 131 +++++++++++++ resources/img/icons/icon7.svg | 78 ++++++++ resources/img/icons/icon8.svg | 110 +++++++++++ resources/img/icons/icon9.svg | 105 ++++++++++ resources/js/functions.js | 5 +- 42 files changed, 2180 insertions(+), 483 deletions(-) delete mode 100644 _scala_items/1-seamless-java-interop.md create mode 100644 _scala_items/2-education.md delete mode 100644 _scala_items/2-type-inference.md delete mode 100644 _scala_items/3-concurrency-distribution.md delete mode 100644 _scala_items/4-traits.md delete mode 100644 _scala_items/5-pattern-matching.md delete mode 100644 _scala_items/6-higher-order-functions.md delete mode 100644 _scala_items/7-education.md create mode 100644 _scala_use_case_items/1-backend.md create mode 100644 _scala_use_case_items/2-data.md create mode 100644 _scala_use_case_items/3-cli.md create mode 100644 _scala_use_case_items/4-frontend.md create mode 100644 resources/img/frontpage/notebook.png create mode 100644 resources/img/icons/icon1.svg create mode 100644 resources/img/icons/icon10.svg create mode 100644 resources/img/icons/icon11.svg create mode 100644 resources/img/icons/icon12.svg create mode 100644 resources/img/icons/icon13.svg create mode 100644 resources/img/icons/icon14.svg create mode 100644 resources/img/icons/icon15.svg create mode 100644 resources/img/icons/icon2.svg create mode 100644 resources/img/icons/icon3.svg create mode 100644 resources/img/icons/icon4.svg create mode 100644 resources/img/icons/icon5.svg create mode 100644 resources/img/icons/icon6.svg create mode 100644 resources/img/icons/icon7.svg create mode 100644 resources/img/icons/icon8.svg create mode 100644 resources/img/icons/icon9.svg diff --git a/_config.yml b/_config.yml index 617ac851b..30da41d27 100644 --- a/_config.yml +++ b/_config.yml @@ -38,6 +38,8 @@ collections: output: false why_scala_items: output: false + scala_use_case_items: + output: false scala_carousel_items: output: false scala_items: diff --git a/_data/awesome-scala.yml b/_data/awesome-scala.yml index a99502758..eff7590c0 100644 --- a/_data/awesome-scala.yml +++ b/_data/awesome-scala.yml @@ -1,4 +1,4 @@ -summaryText: Scala is widely used in all these areas and more. +summaryText: Have another use case? Scaladex indexes awesome Scala libraries. Search in the box below or pick one of the popular categories. links: - title: Big Data Processing url: https://index.scala-lang.org/awesome#big-data diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index dc3dfedfb..71cc48afc 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -110,103 +110,72 @@

{{page.headerSubtitle}}

-
-

Why Scala?

-
-
-
-
- {% for scalaItem in site.why_scala_items %} - {% assign loopIndexMod = forloop.index | minus: 1 | modulo: 3 %} - - {% if loopIndexMod == 0 %} - {% assign codeSnippets = '' | split: ',' %} -
- {% endif %} - {% assign codeSnippets = codeSnippets | push: scalaItem.content %} + +
+
+ {% for scalaItem in site.why_scala_items %}

{{scalaItem.shortTitle}}

{{scalaItem.shortDescription}}

- {% if loopIndexMod == 2 or forloop.last %} -
-
- {% for snippet in codeSnippets %} -
{{snippet}}
{% endfor %}
- {% endif %} - {% endfor %}
- +
-

Scala in a Nutshell

-
-

Click the buttons to see Scala in action, - or visit the Scala Documentation to learn more.

+

{{page.useCaseTitle}}

+
+
+
+

{{page.useCaseIntroduction}}

-
-
-
- {% for scalaItem in site.scala_items %} - {% assign loopIndexMod = forloop.index | minus: 1 | modulo: 3 %} - - {% if loopIndexMod == 0 %} - {% assign codeSnippets = '' | split: ',' %} -
- {% endif %} - {% assign codeSnippets = codeSnippets | push: scalaItem.content %} -
+
+
+ {% for scalaItem in site.scala_use_case_items %} +
+ {{scalaItem.shortTitle}}

{{scalaItem.shortTitle}}

{{scalaItem.shortDescription}}

-
More...
+ {{scalaItem.expandText | default: 'See More...' }}
- {% if loopIndexMod == 2 or forloop.last %} +
+
+
-
- {% for snippet in codeSnippets %} -
{{snippet}}
- {% endfor %} +
+
+ {{scalaItem.content}} + back to top +
- {% endif %} - {% endfor %} +
+ {% endfor %} +
- -
-
-

{{site.data.common.texts.scalaBackendsTitle}}

-
    - {% for backend in page.scalaBackends %} -
  • - - {{backend.description}} - - {% if backend.beta == 1 %}beta{% endif %} -
  • - {% unless forloop.last %}
  • {% endunless %} - {% endfor %} -
-
-
-
+ +
+

{{site.data.awesome-scala.summaryText}}

@@ -230,9 +199,64 @@

{{awesomeLink.title}}

{% endfor %}
-
+ +
+
+
+
+ + +
+
+

{{site.data.common.texts.scalaBackendsTitle}}

+
    + {% for backend in page.scalaBackends %} +
  • + + {{backend.description}} + + {% if backend.beta == 1 %}beta{% endif %} +
  • + {% unless forloop.last %}
  • {% endunless %} + {% endfor %} +
+
+
+ + +
+
+
+

{{page.scalaUsersTitle}}

+
+
+

{{page.scalaUsersIntroduction}}

+
+
+
+ {% for scalaItem in site.scala_items %} +
+
+ {{scalaItem.shortTitle}} +

{{scalaItem.shortTitle}}

+

{{scalaItem.shortDescription}}

+
+ + {{scalaItem.expandText | default: 'See + More...' + }}
+
+
+ +
+
+
{{scalaItem.content}}
+
+
+ {% endfor %}
diff --git a/_sass/base/body.scss b/_sass/base/body.scss index a87c02451..6564f3740 100755 --- a/_sass/base/body.scss +++ b/_sass/base/body.scss @@ -3,6 +3,8 @@ //------------------------------------------------ html { box-sizing: border-box; + scroll-behavior: smooth; + scroll-padding-top: 30vh; } *, diff --git a/_sass/base/helper.scss b/_sass/base/helper.scss index 9bec9eed2..9aa4f3341 100755 --- a/_sass/base/helper.scss +++ b/_sass/base/helper.scss @@ -70,3 +70,7 @@ @include flex-wrap(wrap); @include align-items(center); } + +.ta-c { + text-align: center; +} diff --git a/_sass/components/code.scss b/_sass/components/code.scss index c4aed5e9a..4145c7ea5 100755 --- a/_sass/components/code.scss +++ b/_sass/components/code.scss @@ -168,7 +168,7 @@ } pre { - margin-top: 0; + margin: 0; } code { diff --git a/_sass/components/heading-line.scss b/_sass/components/heading-line.scss index bb79a70ce..0f75567d3 100755 --- a/_sass/components/heading-line.scss +++ b/_sass/components/heading-line.scss @@ -24,9 +24,9 @@ &:before { content: ""; display: block; - height: 1px; + height: 5px; position: absolute; - top: 50%; + top: 45%; width: 100%; background: $base-border-color-white; } diff --git a/_sass/layout/nutshell.scss b/_sass/layout/nutshell.scss index 4d171ae1b..67c9e5bb2 100755 --- a/_sass/layout/nutshell.scss +++ b/_sass/layout/nutshell.scss @@ -5,6 +5,12 @@ .nutshell { background: $gray-nutshell; + .image-caption { + font-style: italic; + text-align: center; + color: $base-font-color-inverse; + } + .heading-line { h2 { span { @@ -16,44 +22,87 @@ } } - .scala-items-list { - .items-menu { - .scala-item-row { - @include display(flex); - @include flex-direction(row); + .scala-items-grid { + + .button { + font-size: 0.6rem; + padding: 5px; + margin-top: 5px; + + &.button_call-to-action { + font-size: $font-size-small; + text-align: center; + padding: 5px 15px; + width: 100%; + } + + &.button_return-anchor { + font-family: $base-font-family; + text-transform: none; + // font-weight: normal; + font-size: $font-size-medium; + color: $base-font-color-inverse; + display: block; + position: relative; + text-align: center; + width: 100%; + top: -10px; + background: none; + + &:active, + &:focus, + &:hover { + background: $brand-primary; + color: #fff; + } + } + } + + + &.g-cols-4 { + .items-menu { + grid-template-columns: repeat(4, 1fr); @include bp(large) { - @include flex-direction(column); // switch to single column + grid-template-columns: 1fr; } } + } + + &.g-cols-2 { + .items-menu { + grid-template-columns: repeat(2, 1fr); + + @include bp(large) { + grid-template-columns: 1fr; + } + } + } + + .items-menu { + @include display(grid); + justify-content: space-between; + grid-template-columns: repeat(3, 1fr); + grid-auto-flow: dense; + @include bp(large) { + grid-template-columns: 1fr; + } + .scala-item_icon { + width: 100px; + height: 100px; + padding: 10px; + } .scala-item { @include display(flex); @include flex-direction(column); @include justify-content(space-between); @include align-items(center); - // width - width: 33.33%; - @include bp(large) { - width: 100%; - } - - // max 3 items per row - @include omega(3n); - - padding: $padding-small; + padding: $padding-xsmall $padding-small; text-align: center; transition: $base-transition; - .button { - margin-top: 10px; - font-size: 0.6rem; - padding: 5px; - } - - .button.button_expand-info { - font-size: $font-size-small; - padding: 5px 15px; - margin-top: $font-size-large; + &:has(+ .items-content:target) { + background: $gray-darker; } h3 { @@ -69,34 +118,92 @@ font-size: $font-size-large; } - - &.hoverable:active, - &.hoverable:focus, - &.hoverable:hover { - cursor: pointer; - background: $gray-dark; - } - - &.active { - background: $gray-dark; + .button { + &.button_call-to-action { + margin-top: $font-size-large; + } } } .items-content { - background: $gray-dark; + grid-column: 1 / -1; + background: $gray-darker; transition: $base-transition; + display: none; + + &:target { + display: block; + } + + .items-content_close { + font-size: $font-size-carousel-arrow; + color: $base-font-color-light; + &:hover { + color: $base-font-color-inverse; + } + } .items-code { - display: none; + // display: none; background: $gray-dark; - padding: 65px 0; + padding: 25px 0 5px 0; + + .scala-row { + @include display(flex); + @include flex-direction(row); + // @include justify-content(space-between); + @include align-items(center); + // margin-bottom: 20px; + + @include bp(large) { + @include flex-direction(column); + } + + &.scala-row_align-start { + @include align-items(start); + } + } + + h3 { + font-size: 1.625rem; + color: #fff; + margin-bottom: 10px; + + &:not(:first-child) { + margin-top: 20px; + } + + + @include bp(large) { + text-align: center; + } + } + + .emph { + font-style: oblique; + font-weight: bold; + } + + .code-separator { + border: 1px solid $code-bg-color-dark-highlight; + } .scala-code { - @include span-columns(6); - @include bp(large) { - @include span-columns(12); - } + margin: 0 5px; + width: 50%; + + @include bp(large) { + margin: 0; + width: 100%; + } + + /* set display type of containers of
 elements (see https://stackoverflow.com/a/14406386/561721) */
+                        .code-element {
+                            display: table;
+                            table-layout: fixed;
+                            width: 100%;
+                        }
                     }
 
                     .scala-text {
@@ -107,24 +214,29 @@
                             border-radius: 2px;
                             margin: 0 3px;
                         }
-                        @include span-columns(6);
-                        @include bp(large) {
-                          @include span-columns(12);
-                        }
 
-                        h3 {
-                            font-size: 1.625rem;
-                            color: #fff;
-                            margin-bottom: 20px;
+                        margin: 0 5px;
+                        width: 50%;
+
+                        @include bp(large) {
+                            margin: 0;
+                            width: 100%;
                         }
 
                         p {
                             color: $base-font-color-inverse;
+                            margin-bottom: 8px;
+
+                            @include bp(large) {
+                                text-align: center;
+                            }
                         }
 
                         &.scala-text-large {
-                          @include span-columns(12);
-                          margin-bottom: 30px;
+                            width: 100%;
+                            margin: 0;
+                            // @include span-columns(12);
+                            margin-bottom: 20px;
                         }
                     }
                 }
diff --git a/_sass/layout/runs.scss b/_sass/layout/runs.scss
index e321fa706..f7b9ad837 100755
--- a/_sass/layout/runs.scss
+++ b/_sass/layout/runs.scss
@@ -4,11 +4,12 @@
 
 #site-main {
     .runs {
-        padding: 0;
+        padding-bottom: 20px;
         background: $gray;
 
         h2 {
-            color: #fff;
+            color: $base-font-color-inverse;
+            font-family: $base-font-family;
             text-align: center;
             font-size: $font-size-large;
         }
@@ -17,7 +18,7 @@
             @include display(flex);
             @include align-items(center);
             @include justify-content(center);
-            margin-top: 30px;
+            margin-top: 20px;
             li:nth-child(2),
             li:nth-child(4) {
               height: 100px;
diff --git a/_sass/layout/scala-ecosystem.scss b/_sass/layout/scala-ecosystem.scss
index a7d8bc8a9..5854d32bf 100755
--- a/_sass/layout/scala-ecosystem.scss
+++ b/_sass/layout/scala-ecosystem.scss
@@ -7,6 +7,8 @@
         // background: url("../img/frontpage/background-scala-ecosystem.jpg") no-repeat center bottom $gray-li;
         // @include image-size();
         background: $gray;
+        padding-bottom: 20px;
+
 
         .awesome-table {
             background: $gray-darker;
@@ -30,11 +32,11 @@
             }
 
             .awesome-items {
-                @include span-columns(8);
+                @include span-columns(12);
 
-                @include bp(large) {
-                    @include span-columns(12);
-                }
+                // @include bp(large) {
+                //     @include span-columns(12);
+                // }
 
                 h3 {
                     color: $gray-light;
diff --git a/_sass/layout/site-main.scss b/_sass/layout/site-main.scss
index 893e45b98..de2637a4d 100755
--- a/_sass/layout/site-main.scss
+++ b/_sass/layout/site-main.scss
@@ -3,9 +3,17 @@
 //------------------------------------------------
 #site-main {
     section {
-        padding: $padding-xlarge 0;
+        padding-bottom: $padding-large;
+
+        .section-text {
+            p {
+                color: $base-font-color-inverse;
+                font-size: $font-size-large;
+                margin-bottom: $padding-xsmall;
+            }
+        }
     }
     section:first-child {
-        padding: 20px 0px 0px 0px;
+        padding-top: $padding-medium;
     }
 }
diff --git a/_sass/utils/_variables.scss b/_sass/utils/_variables.scss
index 759cd15a0..b71abc2cc 100755
--- a/_sass/utils/_variables.scss
+++ b/_sass/utils/_variables.scss
@@ -61,7 +61,7 @@ $font-size-small: 0.875rem; // 14px
 $font-size-xsmall:  0.75rem; // 12px
 
 $font-size-h2: 1.375rem; // 22px
-$font-size-h3: 1.2rem;
+$font-size-h3: 1.275rem;
 
 //------------------------------------------------
 $base-line-height: 1.6;
@@ -91,6 +91,7 @@ $padding-large: 40px;
 $padding-mlarge: 35px;
 $padding-medium: 30px;
 $padding-small: 20px;
+$padding-xsmall: 10px;
 //------------------------------------------------
 $border-radius-base: 3px;
 $border-radius-small: 2px;
diff --git a/_scala_items/1-seamless-java-interop.md b/_scala_items/1-seamless-java-interop.md
deleted file mode 100644
index b428e5060..000000000
--- a/_scala_items/1-seamless-java-interop.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-shortTitle: "Seamless Java Interop"
-shortDescription: "Scala runs on the JVM, so Java and Scala stacks can be freely mixed for totally seamless integration."
-scastieUrl:
----
-
-
-
-
Author.scala
-
class Author(val firstName: String,
-    val lastName: String) extends Comparable[Author] {
-
-  override def compareTo(that: Author) = {
-    val lastNameComp = this.lastName compareTo that.lastName
-    if (lastNameComp != 0) lastNameComp
-    else this.firstName compareTo that.firstName
-  }
-}
-
-object Author {
-  def loadAuthorsFromFile(file: java.io.File): List[Author] = ???
-}
-
-
-
App.java
-
import static scala.collection.JavaConversions.asJavaCollection;
-
-public class App {
-    public List<Author> loadAuthorsFromFile(File file) {
-        return new ArrayList<Author>(asJavaCollection(
-            Author.loadAuthorsFromFile(file)));
-    }
-
-    public void sortAuthors(List<Author> authors) {
-        Collections.sort(authors);
-    }
-
-    public void displaySortedAuthors(File file) {
-        List<Author> authors = loadAuthorsFromFile(file);
-        sortAuthors(authors);
-        for (Author author : authors) {
-            System.out.println(
-                author.lastName() + ", " + author.firstName());
-        }
-    }
-}
-
-
-
-

Combine Scala and Java seamlessly

-

Scala classes are ultimately JVM classes. You can create Java objects, call -their methods and inherit from Java classes transparently from Scala. -Similarly, Java code can reference Scala classes and objects.

-
-

-In this example, the Scala class Author implements the Java -interface Comparable<T> and works with Java -Files. The Java code uses a method from the companion object -Author, and accesses fields of the Author class. -It also uses JavaConversions to convert between Scala collections -and Java collections. -

-
-
diff --git a/_scala_items/2-education.md b/_scala_items/2-education.md new file mode 100644 index 000000000..0b6c5d808 --- /dev/null +++ b/_scala_items/2-education.md @@ -0,0 +1,80 @@ +--- +shortTitle: "Ideal for teaching" +shortDescription: "Scala is ideal for teaching programming to beginners as well as for teaching advanced software engineering courses." +expandText: "Why teach Scala?" +anchorTarget: "why-teach-scala" +icon: "icon7.svg" +--- + +
+

Readable and Versatile

+

+ Most of the concepts involved in software design directly map + into Scala constructs. The concise syntax of Scala allows the teachers + and the learners to focus on those interesting concepts without dealing + with tedious low-level implementation issues. +

+

+ The example in file HelloWorld.scala below shows how a “hello + world” program looks like in Scala. In Modeling.scala, we show an + example of structuring the information of a problem domain in Scala. In + Modules.scala, we show how straightforward it is to implement software modules with Scala classes. Last, in Algorithms.scala, we show how the + standard Scala collections can be leveraged to implement algorithms with + few lines of code. +

+

+ Learn more in the dedicated page about + Teaching. +

+
+ +
+
+
+
HelloWorld.scala
+
@main def run() = println("Hello, World!")
+
+
+
Algorithms.scala
+
// Average number of contacts a person has according to age
+  def contactsByAge(people: Seq[Person]): Map[Int, Double] =
+    people
+      .groupMap(
+        person => person.age
+      )(
+        person => person.contacts.size
+      )
+      .map((age, contactCounts) =>
+        val averageContactCount =
+          contactCounts.sum.toDouble / contactCounts.size
+        (age, averageContactCount)
+      )
+
+
+
+
+
Modeling.scala
+
/** A Player can either be a Bot, or a Human.
+    * In case it is a Human, it has a name.
+    */
+  enum Player:
+    case Bot
+    case Human(name: String)
+
+ +
+
Modules.scala
+
// A module that can access the data stored in a database
+  class DatabaseAccess(connection: Connection):
+    def readData(): Seq[Data] = ???
+
+  // An HTTP server, which uses the `DatabaseAccess` module
+  class HttpServer(databaseAccess: DatabaseAccess):
+    // The HTTP server can call `readData`, but it cannot
+    // access the underlying database connection, which is
+    // an implementation detail
+    databaseAccess.readData()
+
+ +
+
diff --git a/_scala_items/2-type-inference.md b/_scala_items/2-type-inference.md deleted file mode 100644 index 25f759f53..000000000 --- a/_scala_items/2-type-inference.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -shortTitle: "Type Inference" -shortDescription: "So the type system doesn’t feel so static. Don’t work for the type system. Let the type system work for you!" -scastieUrl: ---- -
-
-
-
Type inference
-
scala> class Person(val name: String, val age: Int) {
-     |   override def toString = s"$name ($age)"
-     | }
-defined class Person
-
-scala> def underagePeopleNames(persons: List[Person]) = {
-     |   for (person <- persons; if person.age < 18)
-     |     yield person.name
-     | }
-underagePeopleNames: (persons: List[Person])List[String]
-
-scala> def createRandomPeople() = {
-     |   val names = List("Alice", "Bob", "Carol",
-     |       "Dave", "Eve", "Frank")
-     |   for (name <- names) yield {
-     |     val age = (Random.nextGaussian()*8 + 20).toInt
-     |     new Person(name, age)
-     |   }
-     | }
-createRandomPeople: ()List[Person]
-
-scala> val people = createRandomPeople()
-people: List[Person] = List(Alice (16), Bob (16), Carol (19), Dave (18), Eve (26), Frank (11))
-
-scala> underagePeopleNames(people)
-res1: List[String] = List(Alice, Bob, Frank)
-
-
-
-

Let the compiler figure out the types for you

-

The Scala compiler is smart about static types. Most of the time, you need -not tell it the types of your variables. Instead, its powerful type inference -will figure them out for you.

-

-In this interactive REPL session (Read-Eval-Print-Loop), we define a -class and two functions. You can observe that the compiler infers the result -types of the functions automatically, as well as all the intermediate values. -

-
-
diff --git a/_scala_items/3-concurrency-distribution.md b/_scala_items/3-concurrency-distribution.md deleted file mode 100644 index d03a8a269..000000000 --- a/_scala_items/3-concurrency-distribution.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -shortTitle: "Concurrency & Distribution" -shortDescription: "Use data-parallel operations on collections, use actors for concurrency and distribution, or futures for asynchronous programming." -scastieUrl: ---- -
-
-
-
Concurrent/Distributed
-
val x = Future { someExpensiveComputation() }
-val y = Future { someOtherExpensiveComputation() }
-val z = for (a <- x; b <- y) yield a*b
-for (c <- z) println("Result: " + c)
-println("Meanwhile, the main thread goes on!")
-
-
-
-

Go Concurrent or Distributed with Futures & Promises

-

In Scala, futures and promises can be used to process data asynchronously, making it easier to parallelize or even distribute your application.

-

-In this example, the Future{} construct evaluates its argument asynchronously, and returns -a handle to the asynchronous result as a Future[Int]. -For-comprehensions can be used to register new callbacks (to post new things to do) when the future is -completed, i.e., when the computation is finished. -And since all this is executed asynchronously, without blocking, the main -program thread can continue doing other work in the meantime. -

-
-
diff --git a/_scala_items/4-traits.md b/_scala_items/4-traits.md deleted file mode 100644 index fb49e2724..000000000 --- a/_scala_items/4-traits.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -shortTitle: "Traits" -shortDescription: "Combine the flexibility of Java-style interfaces with the power of classes. Think principled multiple-inheritance." -scastieUrl: ---- -{% comment %} -Borrowed from -https://gleichmann.wordpress.com/2009/10/21/scala-in-practice-composing-traits-lego-style/ -{% endcomment %} -
-
-
-
Traits
-
abstract class Spacecraft {
-  def engage(): Unit
-}
-trait CommandoBridge extends Spacecraft {
-  def engage(): Unit = {
-    for (_ <- 1 to 3)
-      speedUp()
-  }
-  def speedUp(): Unit
-}
-trait PulseEngine extends Spacecraft {
-  val maxPulse: Int
-  var currentPulse: Int = 0
-  def speedUp(): Unit = {
-    if (currentPulse < maxPulse)
-      currentPulse += 1
-  }
-}
-class StarCruiser extends Spacecraft
-                     with CommandoBridge
-                     with PulseEngine {
-  val maxPulse = 200
-}
-
-
-
-

Flexibly Combine Interface & Behavior

-

-In Scala, multiple traits can be mixed into a class to combine their interface and their -behavior.

-

Here, a StarCruiser is a Spacecraft with a CommandoBridge that knows how to -engage the ship (provided a means to speed up) and a PulseEngine that -specifies how to speed up. -

-
-
diff --git a/_scala_items/5-pattern-matching.md b/_scala_items/5-pattern-matching.md deleted file mode 100644 index 3b0cb7ccd..000000000 --- a/_scala_items/5-pattern-matching.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -shortTitle: "Pattern Matching" -shortDescription: "Think “switch” on steroids. Match against class hierarchies, sequences, constants and more." -scastieUrl: ---- -
-
-

Switch on the structure of your data

-

In Scala, case classes are used to represent structural data -types. They implicitly equip the class with meaningful toString, -equals and hashCode methods, as well as the -ability to be deconstructed with pattern matching.

-


-In this example, we define a small set of case classes that represent binary -trees of integers (the generic version is omitted for simplicity here). -In inOrder, the match construct chooses the right -branch, depending on the type of t, and at the same time -deconstructs the arguments of a Node. -

-
- -
-
-
Pattern matching
-
// Define a set of case classes for representing binary trees.
-sealed abstract class Tree
-case class Node(elem: Int, left: Tree, right: Tree) extends Tree
-case object Leaf extends Tree
-
-// Return the in-order traversal sequence of a given tree.
-def inOrder(t: Tree): List[Int] = t match {
-  case Node(e, l, r) => inOrder(l) ::: List(e) ::: inOrder(r)
-  case Leaf          => List()
-}
-
-
- -
diff --git a/_scala_items/6-higher-order-functions.md b/_scala_items/6-higher-order-functions.md deleted file mode 100644 index 77f6f5459..000000000 --- a/_scala_items/6-higher-order-functions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -shortTitle: "Higher-order functions" -shortDescription: "Functions are first-class objects. Compose them with guaranteed type safety. Use them anywhere, pass them to anything." -scastieUrl: ---- -
-
-

Go Functional with Higher-Order Functions

-

In Scala, functions are values, and can be defined as anonymous functions - with a concise syntax.

-
-
-
-
Scala
-
val people: Array[Person]
-
-// Partition `people` into two arrays `minors` and `adults`.
-// Use the anonymous function `(_.age < 18)` as a predicate for partitioning.
-val (minors, adults) = people partition (_.age < 18)
-
-
-
-
-
Java
-
List<Person> people;
-
-List<Person> minors = new ArrayList<Person>(people.size());
-List<Person> adults = new ArrayList<Person>(people.size());
-for (Person person : people) {
-    if (person.getAge() < 18)
-        minors.add(person);
-    else
-        adults.add(person);
-}
-
-
-
diff --git a/_scala_items/7-education.md b/_scala_items/7-education.md deleted file mode 100644 index 310e84dcc..000000000 --- a/_scala_items/7-education.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -shortTitle: "Ideal for teaching" -shortDescription: "Scala is ideal for teaching programming to beginners as well as for teaching advanced software engineering courses." ---- - -
-
-

Readable and Versatile

-

- Most of the concepts involved in software design directly map - into Scala constructs. The concise syntax of Scala allows the teachers - and the learners to focus on those interesting concepts without dealing - with tedious low-level implementation issues. -

-

- The example in file HelloWorld.scala below shows how a “hello - world” program looks like in Scala. In Modeling.scala, we show an - example of structuring the information of a problem domain in Scala. In - Modules.scala, we show how straightforward it is to implement software modules with Scala classes. Last, in Algorithms.scala, we show how the - standard Scala collections can be leveraged to implement algorithms with - few lines of code. -

-

- Learn more in the dedicated page about - Teaching. -

-
- -
- -
-
HelloWorld.scala
-
@main def run() = println("Hello, World!")
-
- -
-
Modules.scala
-
// A module that can access the data stored in a database
-class DatabaseAccess(connection: Connection):
-  def readData(): Seq[Data] = ???
-
-// An HTTP server, which uses the `DatabaseAccess` module
-class HttpServer(databaseAccess: DatabaseAccess):
-  // The HTTP server can call `readData`, but it cannot
-  // access the underlying database connection, which is
-  // an implementation detail
-  databaseAccess.readData()
-
- -
- -
- -
-
Modeling.scala
-
/** A Player can either be a Bot, or a Human.
-  * In case it is a Human, it has a name.
-  */
-enum Player:
-  case Bot
-  case Human(name: String)
-
- -
-
Algorithms.scala
-
// Average number of contacts a person has according to age
-def contactsByAge(people: Seq[Person]): Map[Int, Double] =
-  people
-    .groupMap(
-      person => person.age
-    )(
-      person => person.contacts.size
-    )
-    .map((age, contactCounts) =>
-      val averageContactCount =
-        contactCounts.sum.toDouble / contactCounts.size
-      (age, averageContactCount)
-    )
-
- -
-
diff --git a/_scala_use_case_items/1-backend.md b/_scala_use_case_items/1-backend.md new file mode 100644 index 000000000..ef9c574d1 --- /dev/null +++ b/_scala_use_case_items/1-backend.md @@ -0,0 +1,94 @@ +--- +shortTitle: "Server-side" +shortDescription: "High-throughput HTTP servers and clients. Safe, scalable, and principled concurrency. Reliable data validation with powerful transformations." +expandText: "Creating Services" +anchorTarget: "creating-services" +icon: "icon5.svg" +--- + +
+
+
+

Principled Concurrency

+

Scala's expressivity and compiler-enforced saftey makes it easier to construct reliable concurrent code.

+

With Scala, your programs take full advantage of multi-core and distributed architectures, ensure safe access to resources, and apply back-pressure to data producers according to your processing rate.

+

One popular open-source option for managing concurrency in Scala is Cats Effect, combined with http4s for defining servers and routing. Click below to see other solutions.

+ libraries for Concurrency and distribution +
+
+
+
+
Express high-level concurrency with http4s and Cats Effect
+
// HTTP server routing definition
+val service = HttpRoutes.of:
+  case GET -> Root / "weather" => // route '/weather'
+    for
+      winner   <- fetch1.race(fetch2).timeout(10.seconds)
+      response <- Ok(WeatherReport.from(winner))
+    yield
+      response
+
+def fetch1 = fetchWeather(server1) // expensive Network IO
+def fetch2 = fetchWeather(server2) // expensive Network IO
+
+
+
+
+
+
+
+

A Mature Ecosystem of Libraries

+

Use the best of Scala, or leverage libraries from the Java and JavaScript ecosystems.

+

Build with monolithic or microservice architectures. Retain resource-efficiency. Persist your data to any kind of database. Transform, validate, and serialize data into any format (JSON, protobuf, Parquet, etc.).

+

Whether you compile for the Node.js or Java platform, Scala's interop with both gives you access to even more widely-proven libraries.

+ Find the right library for your next Scala project +
+
+
+
+
Compute accross distributed nodes with Akka actors
+
def Device(lastTemp: Option[Double]): Behavior[Message] =
+  Behaviors.receiveMessage:
+    case RecordTemperature(id, value, replyTo) =>
+      replyTo ! TemperatureRecorded(id)
+      Device(lastTemp = Some(value))
+
+    case ReadTemperature(id, replyTo) =>
+      replyTo ! RespondTemperature(id, lastTemp)
+      Behaviors.same
+
+
+
+
+
+
+
+

Case Study: Reusable Code with Tapir

+

Harness the “Code as Data” Paradigm: define once, use everywhere.

+

Scala is a very flexible language. Its rich type system and metaprogramming facilities give the power to automatically derive helpful utilities from your code.

+

One such example library is Tapir, letting you use Scala as a declarative language to describe your HTTP endpoints. From this single source of truth, you can automatically derive their server implementation, their client implementation, and both human-readable and machine-readable documentation.

+

Because everything is derived from a type-safe definition, endpoint invocations are checked to be safe at compile-time, across the frontend and backend.

+ Read more in the Tapir docs +
+
+ +
+
+
Describe service endpoints as data with Tapir
+
// type-safe endpoint definition
+val reportEndpoint =
+  endpoint
+    .in("api" / "report" / path[String]("reportId"))
+    .out(jsonBody[Report])
+
+// derived Docs, Server and Client
+val apiDocs = docsReader
+  .toOpenAPI(reportEndpoint, "Fetch Report", "1.0.0")
+val server = serverBuilder(port = "8080")
+  .addEndpoint(reportEndpoint.handle(fetchReport))
+  .start()
+val client = clientReader
+  .toRequest(reportEndpoint, "http://localhost:8080")
+
+
+
diff --git a/_scala_use_case_items/2-data.md b/_scala_use_case_items/2-data.md new file mode 100644 index 000000000..889a53dff --- /dev/null +++ b/_scala_use_case_items/2-data.md @@ -0,0 +1,49 @@ +--- +shortTitle: "Data Processing" +shortDescription: "Pick your favorite notebook. Run massively distributed big data pipelines; train NLP or ML models; perform numerical analysis; visualize data and more." +expandText: "Processing data" +anchorTarget: "processing-data" +icon: "icon11.svg" +--- + +
+
+
+

Big Data Analysis

+

Analyse petabytes of data in parallel on single-node machines or on clusters.

+

Compute either in batches or in real-time. Execute fast, distributed relational operations on your data, or train machine learning algorithms.

+

Work with popular storage and computation engines such as Spark, Kafka Hadoop, Flink, Cassandra, Delta Lake and more.

+ Libraries for processing big data +
+
+
+
+
Analyse data across a cluster with Spark
+
// Count the number of words in a text source
+val textFile = sc.textFile("hdfs://...")
+val counts = textFile
+  .flatMap(line => line.split(" "))
+  .map(word => (word, 1))
+  .reduceByKey(_ + _)
+counts.saveAsTextFile("hdfs://...")
+
+
+
+
+
+
+

Notebooks

+

Explore data in web-based notebooks and produce rich, interactive output.

+

Combine code, data, and visualizations in a single document. Make changes and instantly see results. Share and collaborate with others.

+

Along many cloud-hosted solutions, open-source notebooks for Scala include the almond Jupyter kernel, Zeppelin and Polynote.

+ Libraries for big data and visualisation +
+
+
+
+

Notebook

+ + +
+
+
diff --git a/_scala_use_case_items/3-cli.md b/_scala_use_case_items/3-cli.md new file mode 100644 index 000000000..52de89d5c --- /dev/null +++ b/_scala_use_case_items/3-cli.md @@ -0,0 +1,83 @@ +--- +shortTitle: "Command Line" +shortDescription: "Superpower your scripts with the Scala command. Get hands-on with the Scala Toolkit. Easily add libraries. Build CLI apps with instant startup." +expandText: "Building Utilities" +anchorTarget: "build-scala-tools" +icon: "icon4.svg" +--- + +
+
+
+

The power of Scala in one file

+

Scala CLI gives all the tools you need to create simple Scala projects.

+

Import your favorite libraries, write your code, run it, create unit tests, share it as a gist, or publish it to Maven Central.

+

Scala CLI is fast, low-config, works with IDEs, and follows well-known conventions.

+ read more on the Scala CLI website +
+
+
+
+
Create simple scripts and utilities with Scala CLI
+
//> using dependency com.lihaoyi::os-lib:0.9.1
+
+// Sort all the files by size in the working directory
+os.list(os.pwd).sortBy(os.size).foreach(println)
+
+
$ scala-cli list_files.sc
+/home/user/example/list_files.sc
+...
+
+
+
+ +
+
+
+

Get productive with the Scala Toolkit

+

The Scala Toolkit is a good fit for writing a script, prototyping, or bootstrapping a new application.

+

Including a selection of approachable libraries to perform everyday tasks, Toolkit helps you work with files and processes, parse JSON, send HTTP requests and unit test code.

+

Toolkit libraries work great on the JVM, JS and Native platforms, all while leveraging a simple code style.

+ find useful snippets in the Toolkit Tutorials +
+
+
+
+
Make web-requests, encode JSON and write to file
+
//> using toolkit latest
+
+// A JSON object
+val json = ujson.Obj("name" -> "Peter", "age" -> 23)
+
+// Send an HTTP request
+import sttp.client4.quick.*
+val response = quickRequest
+  .put(uri"https://httpbin.org/put")
+  .body(ujson.write(json))
+  .send()
+
+// Write the response to a file
+os.write(os.pwd / "response.json", response.body)
+
+
+
+
+
+
+

Compile to native, then deploy easily

+

Package your apps to native binaries for instant startup time.

+

Deploy to Docker images, JS scripts, Spark or Hadoop jobs, and more.

+ other ways to package applications +
+
+
+
+
Compile natively for instant startup
+
$ scala-cli --power package \
+    --native-image \
+    --output my-tool \
+    my-tool.sc
+Wrote /home/user/example/my-tool, run it with ./my-tool
+
+
+
diff --git a/_scala_use_case_items/4-frontend.md b/_scala_use_case_items/4-frontend.md new file mode 100644 index 000000000..f9d0de892 --- /dev/null +++ b/_scala_use_case_items/4-frontend.md @@ -0,0 +1,81 @@ +--- +shortTitle: "Frontend Web" +shortDescription: "Harness the Scala and JavaScript ecosystems together. +Develop robust apps that run anywhere: from browsers to Node.js to serverless platforms." +expandText: "Why Scala.js" +anchorTarget: "explore-scalajs" +icon: "icon8.svg" +--- + +
+
+
+

Portable Code and Libraries

+

Write the code once and have it run on the front-end as well as on the backend.

+

Reuse the same libraries and testing frameworks on both sides. Write API endpoints that are typechecked across the stack.

+

For example: define your data model in a shared module. Then use sttp to send data to the backend, all while upickle handles seamless conversion to JSON, and also reads JSON back into your model on the backend.

+ More Scala.js libraries and frameworks +
+
+
+
+
Share your model code with frontend and backend
+
enum Pet derives upickle.ReadWriter:
+  case Dog(id: UUID, name: String, owner: String)
+  case Cat(id: UUID, name: String, owner: String)
+
+
// Send an HTTP request to the backend with sttp
+val dog = Dog(uuid, name, owner)
+val response = quickRequest
+  .patch(uri"${site.root}/petstore/$uuid")
+  .body(dog)
+  .send()
+response.onComplete { resp => println(s"updated $dog") }
+
+
+
+
+
+
+

Interoperability with JavaScript

+

Call into JS libraries, or export your Scala.js code to other JS modules.

+

Leverage the JavaScript ecosystem of libraries. Use ScalablyTyped to generate types for JavaScript libraries from TypeScript definitions.

+ Scala.js facades for popular JavaScript libraries +
+
+
+
+
React component written with Slinky
+
val Counter = FunctionalComponent[Int] { initial =>
+  val (count, setCount) = useState(initial)
+  button(onClick := { event => setCount(count + 1) },
+    s"You pressed me ${count} times"
+  )
+}
+ReactDOM.render(Counter(0), mountNode)
+
+
+
+
+
+
+

Poweful User Interface Libraries

+

Write robust UIs with the Scala.js UI libraries.

+

Pick your preferred style: Laminar for a pure Scala solution, Slinky for the React experience, or Tyrian or scalajs-react for the pure FP-minded developers.

+ See more Scala.js libraries for frontend and UI +
+
+
+
+
Manage state with Tyrian using the Elm architecture
+
def view(count: Int): Html[Msg] =
+  button(onClick(Msg.Increment))(
+    s"You pressed me ${count} times"
+  )
+
+def update(count: Int): Update[Msg, Int] =
+  case Msg.Increment => (count + 1, Cmd.None)
+  case _             => (count,     Cmd.None)
+
+
+
diff --git a/index.md b/index.md index bdbd322b5..88158c9aa 100644 --- a/index.md +++ b/index.md @@ -64,6 +64,18 @@ scalaIDEs: icon: /resources/img/frontpage/sublime.png metals: true url: "https://scalameta.org/metals/docs/editors/sublime.html" + +# Why Scala +whyScalaTitle: "Why Scala?" + +# Scala use cases +useCaseTitle: "Proven Use Cases" +useCaseIntroduction: "People around the world trust Scala to build useful software, some of the most popular domains include:" + # Scala ecosystem ecosystemTitle: "Scala's libraries unlock your potential" + +# Scala users +scalaUsersTitle: "Users of Scala" +scalaUsersIntroduction: "Scala is used by thousands of developers, students, hobbyists and teachers around the world. See why you should try it." --- diff --git a/resources/img/frontpage/notebook.png b/resources/img/frontpage/notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..5995bf22a413e77b5f5f586649caa3d9aba884ea GIT binary patch literal 194904 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon10.svg b/resources/img/icons/icon10.svg new file mode 100644 index 000000000..47e495dca --- /dev/null +++ b/resources/img/icons/icon10.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon11.svg b/resources/img/icons/icon11.svg new file mode 100644 index 000000000..54c62250e --- /dev/null +++ b/resources/img/icons/icon11.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon12.svg b/resources/img/icons/icon12.svg new file mode 100644 index 000000000..f29ee52eb --- /dev/null +++ b/resources/img/icons/icon12.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon13.svg b/resources/img/icons/icon13.svg new file mode 100644 index 000000000..962b4e937 --- /dev/null +++ b/resources/img/icons/icon13.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon14.svg b/resources/img/icons/icon14.svg new file mode 100644 index 000000000..9d9667dc0 --- /dev/null +++ b/resources/img/icons/icon14.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon15.svg b/resources/img/icons/icon15.svg new file mode 100644 index 000000000..6c873407a --- /dev/null +++ b/resources/img/icons/icon15.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon2.svg b/resources/img/icons/icon2.svg new file mode 100644 index 000000000..a6faf4653 --- /dev/null +++ b/resources/img/icons/icon2.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon3.svg b/resources/img/icons/icon3.svg new file mode 100644 index 000000000..56cdb3d74 --- /dev/null +++ b/resources/img/icons/icon3.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon4.svg b/resources/img/icons/icon4.svg new file mode 100644 index 000000000..a312fb1b0 --- /dev/null +++ b/resources/img/icons/icon4.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon5.svg b/resources/img/icons/icon5.svg new file mode 100644 index 000000000..d60285637 --- /dev/null +++ b/resources/img/icons/icon5.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon6.svg b/resources/img/icons/icon6.svg new file mode 100644 index 000000000..04323ebab --- /dev/null +++ b/resources/img/icons/icon6.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon7.svg b/resources/img/icons/icon7.svg new file mode 100644 index 000000000..646d1dfa3 --- /dev/null +++ b/resources/img/icons/icon7.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon8.svg b/resources/img/icons/icon8.svg new file mode 100644 index 000000000..0376e3400 --- /dev/null +++ b/resources/img/icons/icon8.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/icons/icon9.svg b/resources/img/icons/icon9.svg new file mode 100644 index 000000000..d8aa2ad01 --- /dev/null +++ b/resources/img/icons/icon9.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/js/functions.js b/resources/js/functions.js index 7f9c64df3..c50a30be3 100644 --- a/resources/js/functions.js +++ b/resources/js/functions.js @@ -1,7 +1,7 @@ --- --- -// Sliding Panel and scala in a nutshell +// Sliding Panel $(document).ready(function() { $('.navigation-panel-button,.navigation-fade-screen,.navigation-panel-close').on('click touchstart', function(e) { $('.navigation-menu,.navigation-fade-screen').toggleClass('is-visible'); @@ -22,8 +22,7 @@ $(document).ready(function() { var jButton = $(button); var expandButton = jButton.children('.button-more'); if (expandButton.length > 0) { - var target = jButton.is('.scala-item__governance') ? expandButton : jButton; - target.click(function(event) { + expandButton.click(function(event) { var activeCode = contents.eq(index2); var others = allContents.not(activeCode); allButtons.removeClass('active'); From 409747d8bff678a73839b6a4ad6735dac0803402 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Thu, 29 Jun 2023 14:56:57 +0200 Subject: [PATCH 04/10] temporary single-item users section --- _layouts/frontpage.html | 15 ++++++++++----- _sass/layout/nutshell.scss | 27 ++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index 71cc48afc..8f1bcb656 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -229,18 +229,23 @@

{{site.data.common.texts.scalaBackendsTitle}}

-

{{page.scalaUsersTitle}}

+ + +

{{site.scala_items[0].shortTitle}}

-
+ + + +
{% for scalaItem in site.scala_items %}
{{scalaItem.shortTitle}} -

{{scalaItem.shortTitle}}

+ +

{{scalaItem.shortDescription}}

diff --git a/_sass/layout/nutshell.scss b/_sass/layout/nutshell.scss index 67c9e5bb2..f73b68f16 100755 --- a/_sass/layout/nutshell.scss +++ b/_sass/layout/nutshell.scss @@ -5,6 +5,13 @@ .nutshell { background: $gray-nutshell; + + .scala-item_icon { + width: 100px; + height: 100px; + padding: 10px; + } + .image-caption { font-style: italic; text-align: center; @@ -78,6 +85,21 @@ } } + &.g-cols-1 { + .items-menu { + grid-template-columns: 1fr; + align-items: center; + justify-items: center; + + .scala-item { + width: 600px; + @include bp(large) { + width: 100%; + } + } + } + } + .items-menu { @include display(grid); justify-content: space-between; @@ -86,11 +108,6 @@ @include bp(large) { grid-template-columns: 1fr; } - .scala-item_icon { - width: 100px; - height: 100px; - padding: 10px; - } .scala-item { @include display(flex); @include flex-direction(column); From 21ca3faa378893911073f8f55feab48862d45776 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Thu, 29 Jun 2023 15:48:07 +0200 Subject: [PATCH 05/10] adjust style of ecosystem section --- _layouts/frontpage.html | 2 +- _sass/layout/scala-ecosystem.scss | 45 ++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index 8f1bcb656..6895c7549 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -184,7 +184,7 @@

{{page.ecosystemTitle}}

- +
Awesome Scala diff --git a/_sass/layout/scala-ecosystem.scss b/_sass/layout/scala-ecosystem.scss index 5854d32bf..2cdb0a7fe 100755 --- a/_sass/layout/scala-ecosystem.scss +++ b/_sass/layout/scala-ecosystem.scss @@ -11,8 +11,8 @@ .awesome-table { - background: $gray-darker; - padding: 16px 0; + border: 3px solid $gray-dark; + padding: 8px 0; .awesome-summary { margin-bottom: 16px; @@ -34,34 +34,37 @@ .awesome-items { @include span-columns(12); - // @include bp(large) { - // @include span-columns(12); - // } - h3 { color: $gray-light; font-family: $base-font-family; text-transform: uppercase; - // border-bottom: $base-border-gray; - font-size: $font-size-large; + font-size: $font-size-medium; } - float: left; display: block; .content-card { float: left; - background: $gray; - padding: 2px; + // border: 2px solid $gray-dark; + // padding: 2px; + background: $brand-secondary; margin: 5px 3px; display: block; border-radius: $border-radius-base; + &:active, + &:focus, + &:hover { + background: $brand-primary; + } + } a { h3 { + + font-size: $font-size-small; transition: $base-transition; padding: 10px; i { @@ -74,11 +77,6 @@ &:hover { text-decoration: none; box-shadow: $box-shadow-item; - - h3 { - color: $brand-primary; - background: $gray-dark; - } } } } @@ -149,9 +147,24 @@ input { padding: 12px 18px 12px 50px; + color: $base-font-color-inverse; + background: $gray-li; border-radius: $border-radius-small; width: 100%; font-weight: $font-bold; + + &::placeholder { + color: $base-font-color-inverse; + } + + &:focus, + &:active { + background: #fff; + color: $base-font-color-light; + &::placeholder { + color: $base-font-color-light; + } + } } } @include bp(medium) { From 0c18b96d397cb0a6223d78ba62b0389ebcdab1f3 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Fri, 30 Jun 2023 15:36:37 +0200 Subject: [PATCH 06/10] add link --- _scala_use_case_items/1-backend.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_scala_use_case_items/1-backend.md b/_scala_use_case_items/1-backend.md index ef9c574d1..6a97113d8 100644 --- a/_scala_use_case_items/1-backend.md +++ b/_scala_use_case_items/1-backend.md @@ -12,7 +12,7 @@ icon: "icon5.svg"

Principled Concurrency

Scala's expressivity and compiler-enforced saftey makes it easier to construct reliable concurrent code.

With Scala, your programs take full advantage of multi-core and distributed architectures, ensure safe access to resources, and apply back-pressure to data producers according to your processing rate.

-

One popular open-source option for managing concurrency in Scala is Cats Effect, combined with http4s for defining servers and routing. Click below to see other solutions.

+

One popular open-source option for managing concurrency in Scala is Cats Effect, combined with http4s for defining servers and routing. Click below to see other solutions.

libraries for Concurrency and distribution
From 787af98b77989c3a66bacec815abc8f246bcda8d Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Fri, 30 Jun 2023 16:02:11 +0200 Subject: [PATCH 07/10] add anchors to close buttons --- _layouts/frontpage.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index 6895c7549..08d44d74c 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -152,7 +152,7 @@

{{scalaItem.shortTitle}}

- +
@@ -255,7 +255,7 @@

{{site.scala_items[0].shortTitle}}

- +
{{scalaItem.content}}
From b7f5fdfbb504bccb4546cbf30a3b7ea07a724337 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Mon, 3 Jul 2023 11:42:57 +0200 Subject: [PATCH 08/10] minor text updates, demo calling client --- _scala_use_case_items/1-backend.md | 6 ++++-- _scala_use_case_items/4-frontend.md | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/_scala_use_case_items/1-backend.md b/_scala_use_case_items/1-backend.md index 6a97113d8..0f5cafcf2 100644 --- a/_scala_use_case_items/1-backend.md +++ b/_scala_use_case_items/1-backend.md @@ -65,7 +65,7 @@ def fetch2 = fetchWeather(server2) // expensive Network IO

Case Study: Reusable Code with Tapir

Harness the “Code as Data” Paradigm: define once, use everywhere.

-

Scala is a very flexible language. Its rich type system and metaprogramming facilities give the power to automatically derive helpful utilities from your code.

+

Scala's rich type system and metaprogramming facilities give the power to automatically derive helpful utilities from your code.

One such example library is Tapir, letting you use Scala as a declarative language to describe your HTTP endpoints. From this single source of truth, you can automatically derive their server implementation, their client implementation, and both human-readable and machine-readable documentation.

Because everything is derived from a type-safe definition, endpoint invocations are checked to be safe at compile-time, across the frontend and backend.

Read more in the Tapir docs @@ -88,7 +88,9 @@ val server = serverBuilder(port = "8080") .addEndpoint(reportEndpoint.handle(fetchReport)) .start() val client = clientReader - .toRequest(reportEndpoint, "http://localhost:8080")
+ .toRequest(reportEndpoint, "http://localhost:8080") +val report: Future[Report] = + client("5ca1a-78fc8d6") // call like any function
diff --git a/_scala_use_case_items/4-frontend.md b/_scala_use_case_items/4-frontend.md index f9d0de892..639a3777e 100644 --- a/_scala_use_case_items/4-frontend.md +++ b/_scala_use_case_items/4-frontend.md @@ -11,7 +11,7 @@ icon: "icon8.svg"

Portable Code and Libraries

-

Write the code once and have it run on the front-end as well as on the backend.

+

Write the code once and have it run on the frontend as well as on the backend.

Reuse the same libraries and testing frameworks on both sides. Write API endpoints that are typechecked across the stack.

For example: define your data model in a shared module. Then use sttp to send data to the backend, all while upickle handles seamless conversion to JSON, and also reads JSON back into your model on the backend.

More Scala.js libraries and frameworks @@ -62,7 +62,7 @@ ReactDOM.render(Counter(0), mountNode)

Poweful User Interface Libraries

Write robust UIs with the Scala.js UI libraries.

Pick your preferred style: Laminar for a pure Scala solution, Slinky for the React experience, or Tyrian or scalajs-react for the pure FP-minded developers.

- See more Scala.js libraries for frontend and UI + See more Scala.js libraries for frontend and UI
From 81f3260f0e3687b7960b0b097f75709b20f17046 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Mon, 3 Jul 2023 12:20:18 +0200 Subject: [PATCH 09/10] adjust frontend section to focus on frontend --- _scala_use_case_items/4-frontend.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_scala_use_case_items/4-frontend.md b/_scala_use_case_items/4-frontend.md index 639a3777e..5f9b220d6 100644 --- a/_scala_use_case_items/4-frontend.md +++ b/_scala_use_case_items/4-frontend.md @@ -1,8 +1,7 @@ --- shortTitle: "Frontend Web" -shortDescription: "Harness the Scala and JavaScript ecosystems together. -Develop robust apps that run anywhere: from browsers to Node.js to serverless platforms." -expandText: "Why Scala.js" +shortDescription: "Reactive UI's backed by types. Use the same Scala libraries across the stack. Integrate with the JavaScript library and tooling ecosystem." +expandText: "build for frontend" anchorTarget: "explore-scalajs" icon: "icon8.svg" --- @@ -38,7 +37,7 @@ response.onComplete { resp => println(s"updated $dog") }

Interoperability with JavaScript

-

Call into JS libraries, or export your Scala.js code to other JS modules.

+

Call into JS libraries from the npm ecosystem, or export your Scala.js code to other JS modules. Integrate with Vite for instant live-reloading.

Leverage the JavaScript ecosystem of libraries. Use ScalablyTyped to generate types for JavaScript libraries from TypeScript definitions.

Scala.js facades for popular JavaScript libraries
From 2b9391e8c14a3663375ac55423d18b5f2227846f Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Mon, 3 Jul 2023 15:02:52 +0200 Subject: [PATCH 10/10] workshopped changes --- _data/awesome-scala.yml | 2 +- _layouts/frontpage.html | 12 ++++++------ _sass/components/buttons.scss | 5 ++++- _sass/layout/nutshell.scss | 6 ++++++ _sass/layout/scala-ecosystem.scss | 14 +------------- _sass/utils/_variables.scss | 1 + _scala_use_case_items/2-data.md | 2 +- _scala_use_case_items/3-cli.md | 6 +++--- _scala_use_case_items/4-frontend.md | 2 +- index.md | 8 ++++---- 10 files changed, 28 insertions(+), 30 deletions(-) diff --git a/_data/awesome-scala.yml b/_data/awesome-scala.yml index eff7590c0..88a06e43d 100644 --- a/_data/awesome-scala.yml +++ b/_data/awesome-scala.yml @@ -1,4 +1,4 @@ -summaryText: Have another use case? Scaladex indexes awesome Scala libraries. Search in the box below or pick one of the popular categories. +summaryText: Have another use case? Scaladex indexes awesome Scala libraries. Search in the box below. links: - title: Big Data Processing url: https://index.scala-lang.org/awesome#big-data diff --git a/_layouts/frontpage.html b/_layouts/frontpage.html index 08d44d74c..896d79a78 100644 --- a/_layouts/frontpage.html +++ b/_layouts/frontpage.html @@ -184,26 +184,26 @@

{{page.ecosystemTitle}}

- +
Awesome Scala
-
+ -
-
+
diff --git a/_sass/components/buttons.scss b/_sass/components/buttons.scss index a62513b7c..ebef39465 100755 --- a/_sass/components/buttons.scss +++ b/_sass/components/buttons.scss @@ -8,9 +8,12 @@ text-transform: uppercase; color: #fff; background: $brand-secondary; - border-radius: $border-radius-base; + border-radius: $border-radius-bold; display: inline-block; + box-shadow: 0 4px 7px 0 rgba(0, 0, 0, 0.2); + + &:active, &:focus, &:hover { diff --git a/_sass/layout/nutshell.scss b/_sass/layout/nutshell.scss index f73b68f16..005c33408 100755 --- a/_sass/layout/nutshell.scss +++ b/_sass/layout/nutshell.scss @@ -56,6 +56,8 @@ top: -10px; background: none; + box-shadow: none; + &:active, &:focus, &:hover { @@ -179,6 +181,10 @@ &.scala-row_align-start { @include align-items(start); } + + &:has(+ .scala-row) { + margin-bottom: 20px; + } } h3 { diff --git a/_sass/layout/scala-ecosystem.scss b/_sass/layout/scala-ecosystem.scss index 2cdb0a7fe..3956773ce 100755 --- a/_sass/layout/scala-ecosystem.scss +++ b/_sass/layout/scala-ecosystem.scss @@ -45,19 +45,8 @@ .content-card { float: left; - // border: 2px solid $gray-dark; - // padding: 2px; - background: $brand-secondary; - margin: 5px 3px; + margin: 3px; display: block; - border-radius: $border-radius-base; - - &:active, - &:focus, - &:hover { - background: $brand-primary; - } - } a { @@ -66,7 +55,6 @@ font-size: $font-size-small; transition: $base-transition; - padding: 10px; i { margin-right: 6px; } diff --git a/_sass/utils/_variables.scss b/_sass/utils/_variables.scss index b71abc2cc..f8d6492c5 100755 --- a/_sass/utils/_variables.scss +++ b/_sass/utils/_variables.scss @@ -93,6 +93,7 @@ $padding-medium: 30px; $padding-small: 20px; $padding-xsmall: 10px; //------------------------------------------------ +$border-radius-bold: 5px; $border-radius-base: 3px; $border-radius-small: 2px; $border-radius-medium: 10px; diff --git a/_scala_use_case_items/2-data.md b/_scala_use_case_items/2-data.md index 889a53dff..b52626441 100644 --- a/_scala_use_case_items/2-data.md +++ b/_scala_use_case_items/2-data.md @@ -20,7 +20,7 @@ icon: "icon11.svg"
Analyse data across a cluster with Spark
// Count the number of words in a text source
-val textFile = sc.textFile("hdfs://...")
+val textFile = spark.textFile("hdfs://...")
 val counts = textFile
   .flatMap(line => line.split(" "))
   .map(word => (word, 1))
diff --git a/_scala_use_case_items/3-cli.md b/_scala_use_case_items/3-cli.md
index 52de89d5c..5a82aaaf2 100644
--- a/_scala_use_case_items/3-cli.md
+++ b/_scala_use_case_items/3-cli.md
@@ -1,7 +1,7 @@
 ---
 shortTitle: "Command Line"
 shortDescription: "Superpower your scripts with the Scala command. Get hands-on with the Scala Toolkit. Easily add libraries. Build CLI apps with instant startup."
-expandText: "Building Utilities"
+expandText: "Scripting Utilities"
 anchorTarget: "build-scala-tools"
 icon: "icon4.svg"
 ---
@@ -36,7 +36,7 @@ os.list(os.pwd).sortBy(os.size).foreach(println)

Get productive with the Scala Toolkit

The Scala Toolkit is a good fit for writing a script, prototyping, or bootstrapping a new application.

-

Including a selection of approachable libraries to perform everyday tasks, Toolkit helps you work with files and processes, parse JSON, send HTTP requests and unit test code.

+

Including a selection of approachable libraries to perform everyday tasks, the Scala Toolkit helps you work with files and processes, parse JSON, send HTTP requests and unit test code.

Toolkit libraries work great on the JVM, JS and Native platforms, all while leveraging a simple code style.

find useful snippets in the Toolkit Tutorials
@@ -64,7 +64,7 @@ os.write(os.pwd / "response.json", response.body)
-

Compile to native, then deploy easily

+

Package to native, deploy easily

Package your apps to native binaries for instant startup time.

Deploy to Docker images, JS scripts, Spark or Hadoop jobs, and more.

other ways to package applications diff --git a/_scala_use_case_items/4-frontend.md b/_scala_use_case_items/4-frontend.md index 5f9b220d6..8f9475aa7 100644 --- a/_scala_use_case_items/4-frontend.md +++ b/_scala_use_case_items/4-frontend.md @@ -1,7 +1,7 @@ --- shortTitle: "Frontend Web" shortDescription: "Reactive UI's backed by types. Use the same Scala libraries across the stack. Integrate with the JavaScript library and tooling ecosystem." -expandText: "build for frontend" +expandText: "building frontend" anchorTarget: "explore-scalajs" icon: "icon8.svg" --- diff --git a/index.md b/index.md index 88158c9aa..092aa3b78 100644 --- a/index.md +++ b/index.md @@ -13,11 +13,11 @@ headerButtonUrl: "/what-is-scala/" gettingStarted: mainTitle: "Get Started" mainUrl: "https://docs.scala-lang.org/getting-started.html" - subtitle: "Scala Book" - subtitleLink: "https://docs.scala-lang.org/scala3/book/introduction.html" + subtitle: "Overview" + subtitleLink: "https://docs.scala-lang.org/tour/tour-of-scala.html" links: - - title: "Tour" - url: "https://docs.scala-lang.org/tour/tour-of-scala.html" + - title: "Guide" + url: "https://docs.scala-lang.org/scala3/book/introduction.html" - title: "Courses" url: "https://docs.scala-lang.org/online-courses.html" apiDocs: