Kirjasto - Tampereen teknillinen yliopisto

Using Scala to Boost Web Development

Show simple item record

Title: Using Scala to Boost Web Development
Author: Lähteenmäki, Jyri-Matti
Alternative title: Web-sovelluskehityksen tehostaminen Scala-ohjelmointikielellä
Abstract: Web-sovellusten kehittämiseen on tarjolla useita vaihtoehtoisia teknologioita. Loppukäyttäjälle valittu toteutusteknologia ei välttämättä ole näkyvissä, mutta asiakkaalle se näkyy projektista aiheutuvina kustannuksina. Lisäksi teknologiavalinnoilla on vaikutusta lopputuloksen laadulle ja projektin kehittäjien työn mielekkyydelle. Pääsääntöisesti vaihtoehdot perustuvat dynaamisiin ohjelmointikieliin, ja staattisesti tyypitetty kieli toisikin mielenkiintoisen vaihtoehdon. Tässä työssä tarkastellaan Scala-ohjelmointikielen soveltuvuutta perinteiseen Web-kehittämiseen ja arvioidaan sen tuomia etuja ja haittoja.

Scala-ohjelmointikieli on tavukoodiyhteensopiva yleisesti käytetyn Java-kielen kanssa, mutta sen funktionaalisen paradigman hyödyntäminen ja mahdollisesti hyvinkin erilainen syntaksi tekevät siitä hankalahkon opittavan Java-ohjelmoijalle. Tämän vuoksi työssä esitellään Scala-ohjelmointikielen perusteet sekä työn kannalta oleellisimmat tekniikat. Työ pyrkii tuomaan esiin eroja ja yhtäläisyyksiä Java-kieleen nähden ja luo silmäyksen tämänhetkiseen työkalutukeen.

Työssä toteutetaan Scala-kielellä perinteisiä Web-kehityksessä vastaantulevia asioita ja arvioidaan niiden etuja ja haittoja vaihtoehtoisiin tapoihin nähden. Ohjelmakoodiesimerkit tarjoavat samalla konkreettisen näkymän asiaan. Joitakin mielenkiintoisia mahdollisuuksia havaittiin, joilla voi olla merkittäväkin positiivinen vaikutus ohjelmistokehitykseen.

Työn yhteydessä toteutettu yksinkertainen esimerkkiprojekti tarkastelee työssä tehtyjä havaintoja käytännössä. Tällä pyritään tuomaan esille asioita, jotka tulisivat vastaan tosielämän projekteissakin. Projekti toteutettiin sekä Javalla että Scalalla, mikä osoittaa että Scala-kieltä voidaan käyttää saumattomasti osassa projektia ilman että se liikaa häiritsee muita osia. Esimerkkiprojektille ajettu yksinkertainen suorituskykytesti osoittaa, ettei Scala-toteutuksella ole suorituskykyongelmia Javatoteutukseen nähden. /Kir10

There exists a number of alternative technologies for Web application development. The final product as seen by the end user might not reflect the underlying technologies, but for the customer it is visible in project costs. The chosen technologies have an impact on the overall quality of the product and they also play an important role in making the development pleasant. Most of the available technologies are based on dynamic programming languages and thus a statically typed language would introduce an interesting alternative. This thesis examines the suitability of the Scala programming language for Web development and evaluates its advantages and disadvantages.

Scala programming language is bytecode compatible with the well-known Java language but its utilization of the functional paradigm and possibly quite differing syntax make it somewhat hard to learn for an average Java programmer. Therefore the basics and the most relevant techniques of the Scala language are introduced. The similarities as well as differences to Java language are brought up, and the available tool support for Scala is examined and briefly compared to the excellence of Java tools.

This thesis implements some common functionality related to web development in Scala. The discovered advantages and disadvantages are evaluated against alternative methods. Program code listings offer a concrete view to the subject. Some interesting possibilities were discovered that could have a significant positive impact on development.

A simple example project investigates the observations in practice. This strives to bring out issues that could also be present in real-life projects. The project was implemented in both Java and Scala which shows that Scala can be used in some parts of a project without major interference to other parts. A simple performance test run against the example project shows that Scala does not suffer from performance issues comparing to Java.

Issue date: 2010-05-05
URN: http://URN.fi/URN:NBN:fi:tty-201005101118
Publication type: Diplomityö - Master's thesis
Language: en
Pages: 59
Instructor: Tirilä, Antti
Examiner: Haikala, Ilkka
University: Tampereen teknillinen yliopisto
Faculty: Tieto- ja sähkötekniikan tiedekunta
Department: Ohjelmistotekniikan laitos
Degree Programme: Tietotekniikan koulutusohjelma
Copyright: This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.

Files in this item

Files Size Format View
lahteenmaki.pdf 547.5Kb PDF View/Open

This item appears in the following Collection(s)

Show simple item record

Search TUT DPub


Advanced Search

Browse

My Account

Statistics