26.07.2012

Scala for Java Refugees Part 1: main(String[])

* Source text URL: http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-1


Вие знаете, кой сте. Вие сте разработчик, който започне да използва Java  преди няколко години, може би в качеството на друг език и това е по-добра алтернатива на C++, а може би, в качество на първи език при началното програмиране. Вие сте познати с Java, Вие знаете входи и изходи го, неговото настроение. Това като стари приятели, Вие не можете да чувствувате настроение по-добре, но знаете че трябва да галя го, за да той се усмихава. Кратко, Вие сте мастер а Java е Вашият товарен кон.
Вие ставате малко по-прагматични в вашия избор на езика. Меко казано, вашия меден месец с Java се приключва. Макар че едва ли е възможно да намира достатъчно недостатъци в езика за да просто напусна, Вие, разбира се, сте достатъчно открити за да разглеждате алтернативи.
Вие чули сте за онази нещо, което се нарича Ruby – разбира се, Вие сте чули, като взе предвид огромния рекламен шум, произведен от неговите последователи. Вие сте впечатлени от краткостта на конструкция и мощността на неговия синтаксис, но Вие не се продавате за идея да използва език на сценарии за създаването на вашата база на приложения. Динамическата типизация и TextMate – всичко това е много добре, но за реален свят, в които Вие се каните да бъдете железен кон, трябва нещо с по-големите възможностите. Като добър прагматик, Вие се предържате към инстурмента, който работи: Java.

Хубава новина е то че има светлина в края на тунела. За изхода на сцена на новия език, разработчик взима с пристъп света. Scala, струва се, предлага всичко, което Вие сте търсили в езика толкова дълго време: статическата типизация, съставлен байт-код (Вие можете да пуснете го на всички онези древни Java-съвместими сървъри), кратой и виразителен синтаксис. Вие сте видели вече няколко примери, които ви наистина харесват. Това изглежда като точно копие на Java, с изключение на половина от безполезни конструкции. Няма точка с запетая, никакви публични статичните проверочните методи на празнота, дори, се струва, има някакъв механизм на извеждането на статическия тип.
Единствената проблема за ви е изяснение на това, откъде да започна.Вие сте опитвали да търсите на сайта Scala, но онова, което сте намерили останава ви в състояние на търсене. Затова всичко е в функционал. Lamdas на висок ред на функции, неизменно състояние, рекурсия из Wazoo. Веднага всичко изглежда по-малко перспективно.
Не се страхувайте, бежанец от Java,  още не всичко е загубено. Наистина, Scala е функционален език, но това е необходимо и във висша степен обективно-ориентирано. Какво означава това? Това означава, че няма да Ви наложи да пишете код с единственната цел да угодите HaskellCurry.

Вие можете да напишете кода, който Вие можете да прочетете след седмица. Вие дори можете да бъдете в състояние да покажете този код в вашата Java, който толкова обичат коллеги, те само го и могат да разбират. Вие не трябва да се притеснявайте с всека функция и да избягнете проблеми на всека цена. Вие можете да напишете Java приложения в Scala. Вие само се нуждаете от правилното въведение.
Въведение
Аки Вие приличате на мен и можете да си идентифицирате – тогава тази серия е за Вас. Чел съм много стати и ръководства по Scala (AlexBlewitt’sseries. Настоятелно се рекомендува особенно ако Вие сте заинтересовани от по-функционалната страна на живота), някои от тези учебници дори опитваха, за да направят преход към създаването на неща по-прости за изпълнение на обикновена Java-разработка.
Аз лично имам твърде малко опит в FP (функционалното програмирането), затова не мисля, че бих могъл да напиша статия за преноса на кода, написан на Scheme, в Scala, дори ако бих искал. Вместо това, тази серия ще бъде съсредоточена върху това, как Scala ще бъде толкова хубава колкото Java.
Вече говорил ли съм Alex’sScalaintroductionseries? Сериозно, това е интересно четене, и не лошо въведение в Scala. Щом като Вие завършите да четете моята безмислица, Вие трябва да прочетете някои от неговите по-последователни книги. Колкото повече, толкова по-добре!
Пристъпвайки към работа

objectHelloWorldextendsApplication{
println("Hello, World!")
}

Нищо приличащо на получаване на неща с неголемият код. Обърнете внимание на приятното отсъствие на задължителната точка и запетая. Можем да ги използваме във всеки случай, но те не се трябват ако ние се нуждаеме от няколко оператори на въведен ред. Този пример на кода прави тъкмо това, като тя изглежда, тя определява приложението, което (при пускане с помощта на интерпретатора Scala) ще бъде да печата «Hello. World!». За стандартното извеждане. Ако Вие поместите този код в файл с разширяване .Scala, Вие можете да компилирате го с помощта на компилатора .class. и използването на интерпретатора Java., но Вие трябва да малко да потичате с път към класса. За да направя това по-просто дъстаточно да използва команда Scala за такъв начин:

scalachello.scala
scalaHelloWorld

Обърнете внимание на името на файла в въпроса. В отличие от Java, Scala Ви накара да определите всички обществените класи отделно в файлове с едноименното название. Scala фактически позволява да определи толкова класове, колкото Вие искате да имате в файла (мисля, C++ или Ruby). Това все още хубава практика за да следва на съглашение Java името. Ако ще бъдеме хубави програмисти – ще запазиме нашия Hello World. Например, в файла под названието «Hello World.scala».

ok ok