Prototype - oficjalne API i dokumentacja

Opublikowane przez Jarosław Zabiełło Fri, 19 Jan 2007 15:53:00 GMT

Znana biblioteka Prototype doczekała się własnej dokumentacji, API oraz bloga: http://prototypejs.org. Prototype zapewnia lekkie, eleganckie API o składni wzorowanej na języku Ruby. Ta składnia jest tak ładna, że niektórzy nawet nie widzą potrzeby tworzenia dodatkowych helperów. W tej chwili to, moim zdaniem, najlepsza biblioteka do JavaScript i AJAX. Rails postawił zdecydowanie na dobrego konia. Pylons – niejako “z rozpędu”, bo skopiowali railsowe helpery – też. :)

Czytaj dalej...

Tagi , , , , ,  | 9 comments

Ruby najszybciej rosnącym językiem

Opublikowane przez Jarosław Zabiełło Thu, 04 Jan 2007 17:00:00 GMT

Ruby ostro idzie do przodu przesuwając się w górę na liście popularności oczko za oczkiem. Wg TIOBE Programming Community Index Ruby był językiem roku 2006 (w styczniu 2007 Ruby jest 10 pozycji). Z pewnością przyczynił się do tego framework Rails. Pewnie z tego samego powodu (tu jest nią AJAX) rosnie popularność języka JavaScript.

Dawniej popularność języka dyktowało wsparcie dużych firm (Sun dla Javy i Microsoft dla C#). Ale współcześnie dużo większe znaczenie zaczyna mieć “killer application” (“zabójcza” aplikacja promująca język w jakim została napisana) oraz to co twierdzi internet. Stąd zwycięzcy w ostatnich dwóch latach (PHP i Java) w tym roku (2006) są przegranymi.

Można też zauważyć trend rosnącej popularności języków typowanych dynamicznie przy malejącym tych typowanych statycznie. Ale to nic dziwnego. Od czasu przełamania pewnej bariery wydajności sprzętu upadł główny powód od aby nie korzystać z języków dynamicznych na szerszą skalę. (Z pewnością taki Smalltalk narodził się zdecydowanie w złym czasie) Ciekawa jest też uwaga, że większość popularności języka PHP nabijana jest jego problemami z bezpieczeństwem zamiast faktycznym uzyskiwaniem popularności w kręgach programistów.

Interesujące jest również to, że szybko zdobywa popularność język D, o którym do niedawna mało kto słyszał. To dosyć ciekawy język i do tego ekstremalnie szybki (stosuje jakieś agresywne algorytmy kompilacji). Ma też automatyczne zarządzanie pamięcią (garbage collector). Chyba może bez kompleksów iść na wojnę C++, Javą czy C#. (Zobacz porównanie D z innymi językami.)

Z kolei z języków bardziej niszowych odnotować można wzrost popularności Lua (z pozycji 58 na 47) oraz funkcyjnego Haskella (z 56 na 42). Przewiduje się też, że z powodu oczekiwanej migracji z C++ i Visual Basic, w roku 2007 zwycięzcą w kategorii najbardziej popularnego języka, będzie C#.

Tagi , , , , , , ,  | 3 comments

JavaScript idzie w dobrym kierunku

Opublikowane przez Jarosław Zabiełło Mon, 13 Nov 2006 16:56:00 GMT

Muszę przyznać, że od czasu grzebania w bibliotece Prototype spojrzałem w trochę świeży sposób na język JavaScript. Prototype jest przykładem tego, jak bardzo elegancki, dynamiczny i obiektowy kodu można pisać w tym języku. Pozwala też na pisanie bardzo eleganckiego kodu mocno przypominającego język Ruby

Np. poniższy kod wyświetla cztery razy okienko alertu. (Odpowiednikiem bloku kodu (ang. closure) w Ruby jest tu anonimowa funkcja).

(4).times(function() {
  alert("JavaScript is cool")
});

Co ciekawe, w JavaScript (podobnie jak Ruby) można przeciążać wszystkie obiekty. Np. poniżej do klasy Array dodano metodę inArray.

Array.prototype.inArray = function(needle) {
  for(var key in this) {
    if (this[key] === needle) {
      return true
    }
  }
  return false
}

JavaScript posiada też wbudowany operator do wyrażeń regularnych. Np. poniższy kod sprawdza poprawność pola w formularzu:

<script type="text/javascript">
//<![CDATA[
var MyForm = {
  validateEmail: function() {
    if ($F('email_id').match(/^.+?@([\w\d\.-]+?\.\w{2,5})\s*$/)) {
      $('email_error').innerHTML = '';
      return true;
    } else {    
      $('email_error').innerHTML = 'Wrong email format!';
      return false;
    }
  },
  validateForm: function() {
    return this.validateEmail() ? true: false;
  }
};
//]]>
</script>
<form action="" method="post" onsubmit="return MyForm.validateForm()">
  <table border="0" id="container">
    <tr>
      <th><label for="email_id">Email Adddress:</label></th>
      <td>
        <input type="text" id="email_id" onchange="MyForm.validateEmail()" />
        <span id="email_error"></span>
      </td>
    </tr>
    <tr>
      <td colspan="2"><input id="submit" type="submit" /></td>
    </tr>
  </table>
</form>

Jakby tego było mało, JavaScript w nadchodzącej wersji 1.7 przejmuje trochę wygodnej składni Pythona!

Szkoda, że taki popularny PHP wzoruje się na brzydkiej składni Perla, C++ i Javy. JavaScript wybrał sobie znacznie bardziej eleganckie wzorce.

Tagi ,  | 7 comments