Przede wszystkim należy pamiętać, że autor powyższego oświadczenia mówi o tworzeniu stron internetowych. Martwi się więc rozwojem prezentacji i właśnie tam myśli, że Scala nie byłby dobrym wyborem ...
Powiedziawszy to, mam duże doświadczenie w tworzeniu stron internetowych. Pracowałem z nim przez co najmniej 8 lat, z czego 5 w agencjach cyfrowych.
I tak, z mojego doświadczenia, statycznie wpisany, skompilowany język na warstwie prezentacji może być dużą przeszkodą. Treść musi być ciągle zmieniana, znacznie częściej niż wymagania biznesowe. I zwykle musi to zrobić odrębny zespół (programiści „front-end”). Zwykle dużo wiedzą o HTML, JavaScript, standardach internetowych, CSS, ale niewiele o językach po stronie serwera, takich jak Java i C #. Zakładają również, że każda zmiana w szablonie jest natychmiast dostępna; nie są one używane do kompilacji i pisania błędów. I mają rację: języki o typie statycznym są bardzo dobre w przypadku trudnych, złożonych wymagań, takich jak dostęp do danych i reguły biznesowe, ale nie tak dobre do opracowywania interfejsu.
To w rzeczywistości jedna z głównych zalet korzystania ze specjalistycznego i zinterpretowanego języka szablonów, takiego jak Velocity . Łatwość użycia, moc i elastyczność są wystarczające dla programistów warstwy prezentacji. A potem faceci po stronie serwera mogą używać poważnego, statycznie pisanego języka wszędzie indziej ...
Jednak zgadzam się również, że Scala jest nieco inna. Będąc jednocześnie o wiele mniej gadatliwym i bardziej ekspresyjnym niż Java, uważam, że można go wykorzystać do tworzenia prezentacji - więc może z powodzeniem można go użyć jako języka szablonów. A jeśli można go również połączyć z frameworkiem takim jak Play (który automatycznie kompiluje witrynę po każdej zmianie), może być zwycięzcą IMHO. Mimo to nawet Play wybrał język szablonów Groovy (dynamiczny), co nie jest dobrym znakiem.
Podsumowując: problem ze Scalą jest o wiele bardziej związany z faktem, że jest skompilowany. W rzeczywistości mechanizm wnioskowania o typie sprawia, że prawie zapominasz, że jest on również wpisywany statycznie.
(I przepraszam za mój angielski. Daj mi znać, jeśli coś nie jest jasne, postaram się to naprawić.)
Button
gdyWebControl
zawiera wszystkie potrzebne informacje, a wszystkie elementy sterujące pochodzą od niego.