Any fool can make things bigger, more complex, and more violent. It takes a touch of genius and a lot of courage to move in the opposite direction. Albert Einstein

o Ruby

Enterprise

9 komentarzy | Kategorie: Miniblog | trackback
Tagi:

"Enterprise" jest wtedy gdy programiści Javy dyskutują na temat sposobów implementacji odwrócenia stringa (łańcucha znaków), podczas gdy każdy programista Rubiego napisałby:

puts "string".reverse

Jeśli spodobał Ci się wpis to może umieścisz ten blog w swoim czytniku RSS?

Komentarze

1. avatar icon guest napisał(a) 13 Lis 2007 o godz. 08:19:

Nie tylko Ruby :-). W JavaScript co prawda nie ma metody reverse dla stringa, ale można ją napisać:
String.prototype.reverse = function() { tmp = ""; for (var i = this.length - 1; i >= 0; i--) tmp += this[i]; return tmp; }
Proste.

2. avatar icon AdamK napisał(a) 13 Lis 2007 o godz. 08:48:

Będzie w Javie 7 ;)

3. avatar icon Riddle napisał(a) 13 Lis 2007 o godz. 10:14:

Buehehe.

4. avatar icon Programmer napisał(a) 28 Gru 2007 o godz. 21:48:

Ale mi podnieta, że w Ruby można odwrócić String za pomocą jednej metody. W Java odwrócić String można za pomocą jednej lini kodu:
new StringBuffer(„test”).revers().toString();

Tylko oczywiście trzeba znać Java, w pełni znaczenia słowa „znać”, podobnie jak każdą inną technologię, w której chce się zawodowo tworzyć cokolwiek. A porównanie odwórcenia String do rozwiązań klasy Enterprise świadczy, iż autor nie ma pojęcia o profesjonalnym projektowaniu i programowaniu systemów, a już z pewnością systemów opartych o logikę biznesową.
Pozdrawiam!

5. avatar icon Radarek napisał(a) 28 Gru 2007 o godz. 21:54:

@Programmer, nie załapałeś ironii ;). Chodziło o to, że wy programiści Javy potraficie pisać rozprawki na takie tematy jak odwracanie stringa. Już nie mówiąc już o tym, że najchętniej zrobicie nowego design patterna. Typowy programista Rubiego po prostu odwróci ten cholerny string ;).

Więcej luzu.
Pozdrawiam także :).

6. avatar icon pnowak napisał(a) 28 Gru 2007 o godz. 22:44:

Dostarczmy wiele sposobów odwrócenia stringa dostarczając strategie operacji reverse (Strategy design pattern), oraz fabrykę ów strategii. Dla kilku domyślnych implementacji stwórzmy wzorzec Prototype, na pewno się przyda. Całość opakujmy w dekorator aby można było opakowywać powstały wynik czymś dodatkowo.

a na poważnie, fajny design, życze takiej popularności jaką zdobywa kolega Zabiełło :)

7. avatar icon Programmer napisał(a) 28 Gru 2007 o godz. 23:06:

Radarek, widzisz generalizujesz i piszesz rzeczy, o których nie masz pojęcia, skąd wiesz co prawdziwy programista Java czy innego języka zrobi, aby odwrócić String`a? Poprostu chcesz podkreślić atrakcyjność Ruby stosując ironię wobec innych języków, ale ok -> fani każdej technologii robią podobnie wobec innej (fani Java również...). Ja poprostu piszę, że programista Java nie będzie płakał i zastanawiał się jak odwrócić string tylko walnie jedną linię kodu:
new StringBuffer(„test”).revers().toString();
której napisanie nie zajmie godziny więcej czasu niż napisanie tej samej operacji w Ruby.
I tutaj proszę nie generalizuj, że programiści Java na wszystko obmyślają kolejny design pattern i do najprostszych rzeczy stosują EJB. Bo jak w każdej technologii są mocni i słabi programiści, profesjonalni i mniej profesjonalni projektanci itp…
Jeśli miałeś do czynienia z tymi słabszymi i mniej profesjonalnymi to uwierz nie wszędzie tak jest.

I również nie pisz co zrobi typowy programista Ruby, bo podobnie to już zależy od człowieka, bo może też się zdarzyć osoba, która w Ruby, aby odwrócić string wpadnie na pomysł, aby go pociąć na poszczególne litery…

Pozdrawiam!

8. avatar icon Radarek napisał(a) 28 Gru 2007 o godz. 23:40:

@Programmer, generalizuje bo wystarczająco dużo wiem o javie. Wystarczy spojrzeć na jej API. Wczytanie czegoś z pliku? Oczywiście w javie kilka klas (piękny pattern dekoratora), przyklad. Tak wiem, tzw „elastyczność”... Tylko że w 95% przypadkach jak po prostu chcę odczytać coś z pliku. I tu jest pies pogrzebany. Ruby powstał do tych typowych, prostszych przypadków. Typowy javowiec niestety nie jest w stanie dopuścić takiej myśli, że coś można łatwiej, prościej, bez opakowywania tego w dziesiątki zbędnych klas. I nie, nie uważam, że programiści javy są głupi. Tylko są tak nauczeni. Uczy ich tego język, API języka, autorzy książek (np powtarzany Bruce Eckel, który taki styl w swojej serii „Thinking in Java” prezentuje).

9. avatar icon Programmer napisał(a) 29 Gru 2007 o godz. 08:15:

Skąd Ty bierzesz takie określenia:
„Typowy javowiec niestety nie jest w stanie dopuścić takiej myśli”

Nie ma kogoś takiego jak typowy javowiec, każdy człowiek może mieć swój styl programowania obojętnie w jakiej technologii się porusza.

W ogóle Twoje przykłady porównania prostoty języka Ruby z Java np. odwrócenie String, wczytanie czegoś z pliku są mocno nie trafione bo jeśli myślisz, że przyszedł byś do swojego project managera i przekonując go, aby wybrać Ruby podał byś przykład, że w Ruby wystarczy zrobić to tylko:
puts „string”.reverse

A w Java to trzeba aż:
new StringBuffer(„test”).revers().toString();

To nikt by Cię poważnie nie potraktował.

A jeśli chodzi o obudowanie czegoś w dziesiątki klas i stosowanie wzorców projektowych, to nie wynika, że ktoś lubi sobie komplikować życie, ale tego wymaga każdy większy projekt. Proste rzeczy w Java można robić również bardzo prosto.
Nie stosując żadnych wzorców projektowych i dziesiątek klas, jeśli ktoś ma potrzebę programowania wszystkiego w jednej metodzie najlepiej odrazu pod przyciskiem to Java również na to pozwala.

A jeśli chodzi o Thinking in Java, to powinieneś raczej pomyśleć w szerszym kontekście całego cyklu tworzenia projektów i odwzorowania rzeczywistości na język programowania. Piszesz jak byś zarzucał Java, że można w niej programować stosując właściwości obiektowe? To jest jakiś non sens.

Kończąc, moja konkluzja jest taka, iż proste rzeczy można również w Java robić prosto, a do dużych projektów Ruby poprostu nie nadaje się więc nie ma sensu porównywać.
Dlatego radarek szukasz dziwnych problemów na siłę, aby udowodnić atrakcyjność Ruby.

P.S. Ja nic nie ma do Ruby, tylko następnym razem pomyśl nad tematem zanim go rzucisz online, bo ten wydaje się mocno nietrafiony, a przytaczane przez Ciebie argumenty świadczą raczej o braku doświadczenia i ogólnej wiedzy o tworzeniu oprogramowania niż o jakiejkolwiek „złotej myśli”.

Dodaj coś od siebie

Możesz korzystać ze składni Textile.

Pola oznaczone * są wymagane.

Proszę o dodawanie komentarzy związanych z tematem postu, sprawy osobiste proszę załatwiać przez maila bądź gg.

Zastrzegam sobie prawo do moderacji komentarzy (edycja, usuwanie).