Przygotujcie się na dłuższą wypowiedź.
PaK, Twoja wypowiedź zmusiła mnie (właściwie to “nas”, ale o tym za chwilę) to odkrycia kart. Ale po kolei.
Przyznam się szczerze, że zgadzam się z tym, że potrzeba naszej polskiej społeczności (tak by było najlepiej) jednego miejsca w internecie, ale co najważniejsze, pod szyldem “Ruby”. Ruby on rails, jak każdy wie, odegrało bardzo ważną rolę w popularyzacji Rubiego (co w Polsce wciąż jest aktualne), ale już teraz trzeba jasno powiedzieć: Ruby to nie tylko Rails. Nawet zakładają bloga czułem, że chcę pisać o Rubym, a nie o Railsach (co potwierdziła praktyka, bo o Railsach nie napisałem nic do dziś :)). W tej chwili powstaje/powstało bardzo dużo, na prawdę ciekawych projektów w Rubym: merb, datamapper, sequel, rubinius, jruby, ironruby to tylko niektóre z nich. Dla mnie praktycznie od samego początku istotą Rubiego był… Ruby (choć dla wielu jest to ciągle RoR).
A teraz karty na stół. Od pewnego czasu myślałem o jakiejś inicjatywie, dzięki której Ruby będzie miał szansę bardziej realnie zaistnieć w Polsce, a przy okazji pokazać, że Ruby to coś więcej niż Rails.
Na ostatnim spotkaniu KRUGa zgadałem się z okim i comboyem (bywalcy #rubyonrails.pl) że chcięlibyśmy tą sytuację zmienić. Nasz pomysł był jasny: zbudować serwis dla miłośników Rubiego. Jednak taki serwis to jedno. To co jest ważniejsze (i na co zwrócę uwagę) to treść. Postawienie forum, nikomu nie ujmująć nie jest zbyt trudne. Nasza wizja to serwis, który umożlwiałby zbieranie treści w następujących formach:
- newsy
- artykuły
- tutoriale
- wiki
- forum
Oraz wszystkie inne jakie tylko ktoś jest w stanie stworzyć (ktoś chętny na nagranie serii screencastów? bardzo proszę).
To na co chcę zwrócić uwagę to słowo “treść”. Albowiem powstanie takiego serwisu to jedno. Zapełnianie go treścią to drugie. Sam wiem, że napisanie pełnego w treść wpisu na bloga to spory wysiłek.
Dlatego to nad czym musimy popracować to przelanie swoich chęci na treść.
Po naszej rozmowie napisałem, hm, można powiedzieć pewien “manifest”, którego treść dołączam poniżej. Wiem, że momentami może wydawać się zbyt wyniosły (chociaż mam nadzieję że jednak nie :)). W tej chwili mogę powiedzieć, że trwają dyskusję nad formą, ja osobiście pracuję nad layoutem (chociaż grafikiem nie jestem, ale zawsze ktoś może pomóc, poprawić :)). Nie chcemy by to był serwis mój, Okiego i Comboya. To ma być serwis Nas wszystkich. Ważne byśmy podtrzymali swój zapał, a potem w odpowiedni sposób go wykorzystali. Zatem proszę o przeczytanie manifestu i opinie :). PaK, mam nadzieję że nie jesteś zły, nie miała być to akcja konspiracyjna :).
[quote]* Idea
Stworzenie serwisu internetowego o języku programowania Ruby, wraz z dodatkami
typu wiki, forum.
Ruby jest i staje się co raz bardziej popularny… na świecie. W Polsce
niestety tak różowo nie jest. W zasadzie można powiedzieć, że Railsy
są bardziej popularne niż sam język. Budowanie społeczności na frameworku
nie jest na dłuższą metę dobre - frameworki częściej się zmieniają niż
języki. Ruby to nie tylko Railsy, nawet więcej, Ruby to nie tylko web.
Programowanie sieciowe, rozproszone, skrypty shell, bazy danych, przetwarzanie
danych, DSL-e - to tylko niektóre zastosowania. Jeśli jeszcze do tego dołożyć
JRuby, IronRuby, Rubinius to powstaje nam niezła mieszanka wybuchowa.
Ci, którzy obecnie programują w Rubym (dotyczy sytuacji w Polsce) to jakby
nie patrzeć wciąż “adepci nowej sztuki”. Takim ludziom nie trzeba tłumaczyć
co to google, język angielski nie jest dla nich problemem, a grzebanie
w kodzie jakiegoś frameworka nie jest dla nich wielkich wyzwaniem (raczej
chlebem powszednim).
Ci ludzie tworzą pewien trzon społeczności, nadają jej jakiś kierunek,
przekazują więdzę innym. To bardzo ważna rola, łatwiej bowiem jest uczyć
się nowego języka jeśli kolega nam powie “słuchaj, Ruby jest zajebisty!”
niż jeśli mamy sami go odkryć. Takich ludzi jest zawsze garstka
w porównaniu do “zwykłych zjadaczy chleba”, dla których nie jest aż tak
ważne w jakim języku piszą. Jest tu jednak bardzo ważna rzecz. Ci “zwykli
zjadacze chleba”, w momencie gdy stanowią większość w społeczności, decydują
o dalszych losach języka (np. o tym czy będzie wykorzystywany na szeroką
skalę, w firmach). To z kolei rzutuje na ilość ofert pracy oraz na to jak
w ogóle jest spostrzegany język. A nie oszukujmy się, ofert pracy jest
wciąż bardzo mało. I nie zmieni się to dopóki tocząca się kula snieżna,
z Rubinem w środku, nie zbierze odpowiedniej masy.
Kontynuując moje rozważania, Ruby ma dosyć łagodną “krzywą nauki”,
jednakże nie jest ona wcale krótka. By mówić o ewangelizacji, tworzeniu
społeczności nie wystarczy programować w Rubym i mówić, że jest cool.
Jedną z barier (jak zwykle) jest język angielski. Choć mogłoby się wydawać,
że dzisiaj nie powinno stanowić problemu, tak niestety nie jest. Po tej
pierwszej grupie adeptów przychodzi grupa ludzi, zazwyczaj młodych, którzy
zaczynają wykorzystywać technologię do projektów studenckim, freelancerskich,
domowych itp. Starzy wyjadacze są szczęśliwi pisząc w tych językach, które
znają na wylot. Dlatego dla tych młodych ludzi bariera językowa często
jest problemem.
Pamiętam jak koło 1998-9 roku w internecie było już całkiem sporo opracowań
w języku polskim na temat php (prosta stronka, łączenie się z mysql). Myślę, że
to w dużym stopniu zaowocowało i dziś php (w pewnym stopniu “niestety”) jest
bardzo popularny (do tego dochodzi prostota języka i hostingu, ale tamten
czynnik także miał znaczenie). Tego zdecydowanie brakuje Rubiemu.
Nawet jeśli młodzi ludzie znaliby perfect j. angielski to nie rozwiązałoby
problemu. Każdy z nas lubi, jeśli kolega (koleżanka :D) także programuje
w tym języku co my (idziemy za głosem ludu). Raczej mało pocieszające jest, że
jakiś “John” z Ameryki programuje w Rubym.
Wspomniałem także, że “krzywa nauki” jest łagodna, ale niekoniecznie krótka.
Przyznam, że na poczatku myślałem, że jest odwrotnie (tzn. że jest krótka).
Jednak im więcej piszę w Rubym, a przy okazji widzę jaki kod piszą inni,
tym bardziej skłaniam się do tego, że zbyt pochopnie tak pomyślałem.
Kiedyś, pisząc artykuł na swoim blogu, użylem porównania, że Ruby to taki
bardzo ostry nóż, żeby sobie krzywdy nie zrobić trzeba wiedzieć dokładnie
jak się nim posługiwać. Przykładowo w Rubym metaprogramowanie oraz ogromne
możliwości modyfikacja kodu (klasy, metody) podczas działania programu są
bardzo często nadużywane. Sam wiem po sobie, że pierwszym pomysłem na jaki
wpadłem, gdy dowiedziałem się, że “require” to także najzwyklejsza metoda
był kod typu:
%w(rubygems socket benchmark pp).each do |lib_name|
require lib_name
end
Dzisiaj uważam ten kod na typowe nadużycie elastyczności Rubiego (co oczywiście
nie oznacza, że w odpowiednim kontekście ten kod nie miałby sensu), czego
efektem jest nieczytelność kodu.
Tą łagodną, ale długą “krzywą nauki” nie uważam bynajmniej za wadę, ale
naturalną konsekwencję tego jak dużo oferuje nam język Ruby. Otwarte klasy,
miksiny, “wszystko jest obiektem”, pełne domknięcia to tylko niektóre
elementy, których nie uświadczymy w innych językach. By jednak efektywnie
korzystać z nich trzeba je bardzo dogłębnie poznać, stąd nie da się w krótkim
czasie bardzo dobrze nauczyć Rubiego.
Trochę sobie pofilozofowałem, pora na małe podsumowanie:
- Ruby w Polsce nie jest popularny
- w Polsce jest wciąż kojarzony tylko z railsami
- zasługuje z pewnością na większą uwagę
- to ludzie młodzi (“młodzi gniewni”) popularyzują daną technologię
- dla tych młodych ludzi bardzo często barierą jest język (angielski)
- nauka Rubiego jest łagodna, ale nie jest krótka
- początkujący Rubbiści potrzebują wielu wskazówek by efektywnie wykorzystywać
możliwości języka (ale by nie nadużywać jego możliwości)
Zatem wydaje mi się, że brakuje nam, na polskiej scenie Rubiego:
- serwisu (mniej lub bardziej oficjalnego) z newsami ze świata Rubiego,
artykułami, tutorialami, recenzjami książek, opisem wydarzeń
(np. konferencje)
- forum
- wiki
- innych mini serwisów, ale o tym później
Bardziej szczegółowo o każdym z osobna.
- Serwis z newsami, artykułami, tutorialami, recenzjami, opisem wydarzeń itp
W jakimś sensie http://www.ruby-lang.org/pl/ aspirowało do tego, aczkolwiek
jest to “tylko” oficjalna strona języka. Jak widać jest także polskie
tłumaczenie, ale jak widać na tym się skończyło (ostatni news po polsku
ma datę “01 Mar 2007”). Póki co u nas wszystko jest rozproszone po blogach.
Sam wiem z własnego doświadczenia, że przeczesywanie RSSów na dłuższą metę
jest uciążliwe. Prosta agregacja RSSów nie jest rozwiązaniem.
Taki serwis służyłby także jako takie “centrum” (newsy linkują do wpisów,
planeta kanałów etc).
-
Forum
Obecnie mamy http://forum.rubyonrails.pl/. Czyli znów to czego nie lubię:
mówienie na wszystko “rails”. W na horyzoncie mamy już, jak wygląda bardzo
dobrego konkurenta: merb. Wiem, że to tylko nazwa, ale jednak ona jest bardzo
istotna. Tym bardziej, że potem efekt jest taki, że ludzie piszą “programuję
w rails”, “jestem railsowcem”. Jako nigdy nie spotkałem się ze stwierdzeniami
“programuję w struts”, “jestem zend frameworkowcem” (;-)).
-
Wiki
Zaletą wiki jest to, że prezentuję wiedzę nie jednego użytkownika, a wielu
(jesli oczywiście nie jest edytowana przez jedną osobę). To dobre miejsce
na FAQ, opisy problemów, bibliotek, “jak zrobić to w Rubym”, a także i być
może na tłumaczenie dokumentacji? (php ma ją w dużej mierze po polsku…)
-
Inne
Tak jak wspomniałem musimy (chcemy) popularyzować Ruby. Można się
zastanowić co jeszcze mogłoby przyciągnąć uwagę innych programistów.
Dobrym przykładem jest http://tryruby.hobix.com/. Python ma np Python
Challenge (http://www.pythonchallenge.com/) i chociaż w 95% zadań można
użyć innego języka, to sam fakt, że w nazwie ma “python” zrobił swoje.
Po głowie chodzą mi jakieś quizy, zadania do rozwiązania (RubyQuiz).
Myślę, że gdyby zrobić burzę mózgów to coś ciekawego by się wymyśliło
(zawsze można zrobić jakiegoś klona :)).[/quote]