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 duck_typing, ruby, scala | 37 comments
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 meeting, scala, wrocław | 3 comments
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 java, news, scala, trójmiasto | brak comments
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 edytor, intellij, jruby, netbeans, radrails, rails, ruby, rubymine, scala | 11 comments
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 apple, encoding, java, leopard, osx, scala | 9 comments
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 hacking, java, php, python, reflection, ruby, scala, security | 27 comments
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 actors, gae, google, groovy, h2, java, jdbc, jruby, jython, lift, scala | 3 comments
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 clojure, euler, fp, oop, python, ruby, scala | 6 comments
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 clojure, django, fp, java, jruby, lisp, oop, python, rails, ruby, scala, wicket | 105 comments
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 haml, rails, scala, templates | 6 comments