Scala i bezpieczny "duck typing"

Opublikowane przez Jarosław Zabiełło Sat, 23 Jan 2010 06:40:00 GMT

Duck typing (opisywany przeze mnie wcześniej na przykładzie Pythona) to dosyć użyteczna technika popularna w językach dynamicznie typowanych. W typowym języku statycznie typowanym, takim jak Java, nie da się jej stosować. Ale ograniczeniem nie jest statyczne typowanie, lecz to że Java, jako język, jest po prostu słaba. W statycznie typowanej Scali “duck typing” to żaden problem. Mało tego. Fakt, że Scala jest statycznie typowana daje jej tu dodatkową przewagę na językami dynamicznie typowanymi.

Czytaj dalej...

Tagi , ,  | 38 comments

Spotkanie entuzjastów Scali z okolic Wrocławia

Opublikowane przez Jarosław Zabiełło Fri, 15 Jan 2010 01:37:00 GMT

W najbliższy wtorek (19 stycznia 2010) odbędzie się pierwsze spotkanie WrASSE (grupy entuzjastów Scali z okolic Wrocławia) pt. “Scala w projekcie komercyjnym”. Szczegóły: tutaj.

Tagi , ,  | 3 comments

Scala w Trójmieście

Opublikowane przez Jarosław Zabiełło Mon, 09 Nov 2009 20:29:00 GMT

19 listopada 2009 w auli Uniwersytetu Gdańskiego odbędzie się spotkanie poświęcone językowi Scala. Organizuje je Trójmiasto Java User Group. Szczegóły tutaj: http://it.wtrojmiescie.org/spotkania/scala.

Tagi , , ,  | brak comments

RubyMine - najlepszy IDE dla Ruby i Rails

Opublikowane przez Jarosław Zabiełło Mon, 12 Oct 2009 22:13:00 GMT

Mimo, że spora część programistów Ruby’ego i Rails pozostaje wierna edytorom tekstowym takim jak TextMate, Emacs, Vim czy (opisywany dwa lata temu) JEdit, druga część woli IDE ze względu na rozbudowany lepszy refactoring, wbudowany (graficzny) debugger, podpowiedzi i analiza składni kodu Ruby’ego w czasie rzeczywistym. Z różnych IDE do Rails to tak naprawdę liczą się tylko trzy.

Czytaj dalej...

Tagi , , , , , , , ,  | 11 comments

Problem znaków UTF-8 w Scali i Javie pod Mac OS-X

Opublikowane przez Jarosław Zabiełło Tue, 08 Sep 2009 01:15:00 GMT

Wczoraj, na polskim kanale IRC #scala.pl mieliśmy małą dyskusję na temat złego wyświetlania polskich znaków w Scali pod systemem Mac OS-X Leopard (pod Linuksem jest OK). Co dziwne, mimo, że zmienna środowiska LANG pokazuje wartość pl_PL.UTF-8, próby wyświetlenia polskich napisów nie działają. Więcej, w konsoli Scali w ogóle nie ma możliwości wprowadzenia polskich znaków, ani bezpośrednio z klawiatury, ani poprzez wklejenie ze schowka. Wszystkie polskie ogonki zamieniane są na znak zapytania.

     
println(java.nio.charset.Charset.defaultCharset) 
// x-MacCentralEurope

println("Zażółć gęślą jaźń")
// Za???? g??l? ja??
Czytaj dalej...

Tagi , , , , ,  | 9 comments

Atak na zabezpieczenia protected/private Javy/Scali i PHP5

Opublikowane przez Jarosław Zabiełło Sun, 21 Jun 2009 03:45:00 GMT

Być może jednym z argumentów, dla których Ruby znajduje więcej zainteresowania ze strony programistów Javy niż Python, jest podobny mechanizm zabezpieczenia dostępu do atrybutów klasy za pomocą słów kluczowych private i protected. W języku PHP 5 wprowadzono podobny mechanizm. Ci jednak, którzy myślą, że te kwalifikatory zakresu dostępu stanowią jakiekolwiek poważne zabezpieczenie, są w głębokim błędzie. W banalny sposób można to obejść zarówno w w PHP 5, jak i w Javie. Przy czym o ile, w Javie wynika to raczej z celowego projektu w mechanizmie refleksji, w PHP 5 wygląda to na dziurę bezpieczeństwa…

Czytaj dalej...

Tagi , , , , , , ,  | 27 comments

Scala i Lift on GAE

Opublikowane przez Jarosław Zabiełło Mon, 13 Apr 2009 04:32:00 GMT

Google opublikowało listę języków i javowych frameworków dostępnych dla swojego GAE (Google App Engine). Na liście jest m.in. JRuby, Jython, Groovy i Scala. Z powodu ograniczeń dostępności do wątków i JDBC napisano, że Lift nie jest wspierany. Jak jednak można wyczytać z jednym ostatnich wątków na liście dyskusyjnej Scali, trochę pośpieszono się z tą informacją. Lift daje się odpalić na GAE (to jest fork do kodu źródłowego). Scala posiada dwa rodzaje Aktorów – opartych na natywnych wątkach OS oraz opartych na asynchronicznej pętli, bez użycia wątków. Lift nie potrzebuje więc obsługi wątków do swej pracy. Co do JDBC, to sprawa jest trochę mętna, bo udało się uruchomić Lifta na pamięciowej bazie H2. Być może ograniczenie Google’a dotyczy tylko baz relacyjnych?

Updated: Frameworks and libraries supported by Google App Engine Java : List

Tagi , , , , , , , , , ,  | 3 comments

Projekt Eulera 17 - Ruby, Python, Scala

Opublikowane przez Jarosław Zabiełło Sun, 05 Apr 2009 21:24:00 GMT

Na polskim forum RoR pojawiła się informacja o projekcie Eulera składającym się z różnych łamigłówek programistycznych. Na forum RoR przedstawiane są rozwiązania w języku Ruby. Istnieją też rozwiązania w języku Clojure. Takie projekty są dobrym pretekstem do poćwiczenia swoich umiejętności programowania.

Czytaj dalej...

Tagi , , , , , ,  | 7 comments

Scala - język przyszłości

Opublikowane przez Jarosław Zabiełło Sat, 28 Mar 2009 06:17:00 GMT

Kiedy zapytano Jamesa Goslinga (twórcę Javy) o to, który z języków programowania współpracujących z JVM (wirtualną maszyną Javy) by użył teraz, pomijając samą Javę, odpowiedź była zaskakująco szybka i bardzo jasna – Scala.

Nazwa “Scala” pochodzi od “Scalable language” (język skalowalny). Język ten nadaje się równie dobrze do krótkich, zwartych skryptów jak i do tworzenia wydajnych, ogromnych, bezpiecznych systemów sieciowych. W swych założeniach Scala nawiązuje do minimalizmu składni Lispa i Smalltalka (większość rzeczy oparta jest na bibliotekach a nie na składni) dzięki czemu język ten praktycznie nie ma ograniczeń rozwoju i doskonale się skaluje (w miarę potrzeb można tworzyć nowe typy i całe nowe struktury wyglądające jak nowa składnia języka).

Scala jest językiem kompilowanym do bytecodu JVM dzięki czemu potrafi się integrować w sposób praktycznie przezroczysty, z całą platformą Javy (istnieje co prawda implementacja Scali dla platformy .NET ale jest jeszcze niedojrzała). W Scali mamy też wygodną konsolę do interaktywnego testowania kodu (tak jak to jest w Pythonie i Ruby). W Scali każda wartość jest obiektem, każda funkcja zwraca wartość. Zatem każda funkcja też jest obiektem (first class object). Funkcje są też obiektami wyższego rzędu (higher order kinds), można je zagnieżdżać, przekazywać w parametrach, a nawet stosować mechanizm dziedziczenia.

Czytaj dalej...

Tagi , , , , , , , , , , ,  | 108 comments

Nowy Haml 1.7

Opublikowane przez Jarosław Zabiełło Sun, 15 Jul 2007 21:36:00 GMT

Wyszła nowa wersja szablonów Haml 1.7. Dodano parę nowych możliwości i co ważniejsze, znacznie przyśpieszono pracę. Choć nadal Haml jest wolniejszy od ERb to już nie tak, jak wcześniej (wersja 2.0 ma być prawie tak samo wydajna jak ERb)

Zmienił się trochę sposób instalacji. Teraz wystarczy doinstalować “gem install haml” i potem odpalić w konsoli komendę:

haml --rails /sciezka/do/projektu/ror

BTW, ciekaw jestem kiedy doczekamy się implementacji Haml dla Pythona, bo dla PHP już jest.

Updated (2010-02-04) Scaml – implementacja Hamla dla Scali.

Tagi , , ,  | 6 comments