<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentarze do: Wybór technologii</title>
	<atom:link href="http://blog.profitto.pl/2008/11/wybor-technologii/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.profitto.pl/2008/11/wybor-technologii/</link>
	<description>Świadome finanse</description>
	<lastBuildDate>Mon, 06 Apr 2009 20:20:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>Autor: Piotr Lewalski</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-9</link>
		<dc:creator>Piotr Lewalski</dc:creator>
		<pubDate>Mon, 06 Apr 2009 20:20:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-9</guid>
		<description>Witam,

bardzo ładne podsumowanie.
Z jednej strony jestem nieco zawiedziony, że trafiłem tu już w momencie kiedy ów wybór mam za sobą, z drugiej szalenie miłym zaskoczeniem był fakt, że zupełnie niezależnie, w rezultacie podobnej analizy dokonałem tego samego wyboru.

To czego mi we wpisie zabrakło, to nieco większe rozwinięcie tematu frameworków. Wybór odpowiedniego bynajmniej nie jest to banalną sprawą, a tymczasem mam wrażenie, że autor po tak długim wpisie potraktował sprawę nieco po macoszemu.
Może jest to potencjalny materiał na kolejny wpis? :)
Jedno z podstawowe pytanie, przy frameworkach powinno IMHO dotyczyć ilości i przede wszystkim jakości wdrożeń o nie opartych. Nie na darmo mówi się, że lepiej uczyć się na cudzych błędach, a co za tym idzie raczej nie warto opierać projektu o rozwiązanie, które nie sprawdziło się jeszcze w produkcyjnych warunkach na dużą skalę.

BTW Pod kryteriami dla których odpadł Perl podpisuję się z całym przekonaniem :-)

Czekam na kolejne informacje z frontu :)</description>
		<content:encoded><![CDATA[<p>Witam,</p>
<p>bardzo ładne podsumowanie.<br />
Z jednej strony jestem nieco zawiedziony, że trafiłem tu już w momencie kiedy ów wybór mam za sobą, z drugiej szalenie miłym zaskoczeniem był fakt, że zupełnie niezależnie, w rezultacie podobnej analizy dokonałem tego samego wyboru.</p>
<p>To czego mi we wpisie zabrakło, to nieco większe rozwinięcie tematu frameworków. Wybór odpowiedniego bynajmniej nie jest to banalną sprawą, a tymczasem mam wrażenie, że autor po tak długim wpisie potraktował sprawę nieco po macoszemu.<br />
Może jest to potencjalny materiał na kolejny wpis? <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Jedno z podstawowe pytanie, przy frameworkach powinno IMHO dotyczyć ilości i przede wszystkim jakości wdrożeń o nie opartych. Nie na darmo mówi się, że lepiej uczyć się na cudzych błędach, a co za tym idzie raczej nie warto opierać projektu o rozwiązanie, które nie sprawdziło się jeszcze w produkcyjnych warunkach na dużą skalę.</p>
<p>BTW Pod kryteriami dla których odpadł Perl podpisuję się z całym przekonaniem <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Czekam na kolejne informacje z frontu <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Mikołaj Kmita</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-8</link>
		<dc:creator>Mikołaj Kmita</dc:creator>
		<pubDate>Sun, 07 Dec 2008 22:18:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-8</guid>
		<description>@Tomek, @Michał
&quot;Szacowanie rozmiaru much&quot; zawsze jest dyskusyjne i stwierdzenie &quot;średniej wielkości serwis&quot; tak naprawdę dalej niewiele mówi ;)
Na zagadnienie można by spojrzeć choćby z takich dwóch punktów:
- poziom skomplikowania aplikacji - tylko jak to mierzyć? Ilością klas? Ilością kodu?
- spodziewany ruch (ilość odwiedzin) - tu już można by się pokusić o podanie konkretnych liczb.

Co do szukania programistów Python-owych, to mam nadzieję, że jak już do tego punktu dotrzemy, to współpraca z MFI pomoże nam zaadresować ten punkt :)

Zgadzam się także, że w temacie tego rodzaju aplikacji web-owych królują &quot;PHP-owcy&quot; (w temacie hostingu zresztą też), ale część z nich zaczyna dostrzegać ograniczenia tego języka i rozglądając się za czymś dojrzalszym &lt;a href=&quot;http://blog.zeromski.com.pl/2008/05/python-migracja-z-php/&quot; rel=&quot;nofollow&quot;&gt;migrują w stronę Ruby lub właśnie Python-a&lt;/a&gt;.

Tego typu ciekawych punktów do dyskusji jest mnóstwo - może za jakiś czas, jak uzbieramy bardziej pokaźny bagaż doświadczeń, porównać i przemyśleń pokusimy się o jakąś prezentację na &lt;a href=&quot;http://spin-pl.org/gdansk.html&quot; rel=&quot;nofollow&quot;&gt;SPIN-ie&lt;/a&gt; (bo na &lt;a href=&quot;http://groups.google.com/group/jug-trojmiasto&quot; rel=&quot;nofollow&quot;&gt;JUG-a&lt;/a&gt; to temat chyba nie specjalnie by się nadawał).

A co do języków do tego rodzaju aplikacji, to wydaje się że duo: &lt;a href=&quot;http://groovy.codehaus.org/&quot; rel=&quot;nofollow&quot;&gt;Groovy&lt;/a&gt;+&lt;a href=&quot;http://grails.org/&quot; rel=&quot;nofollow&quot;&gt;Grails&lt;/a&gt; też byłoby warte bliższej analizy.</description>
		<content:encoded><![CDATA[<p>@Tomek, @Michał<br />
&#8222;Szacowanie rozmiaru much&#8221; zawsze jest dyskusyjne i stwierdzenie &#8222;średniej wielkości serwis&#8221; tak naprawdę dalej niewiele mówi <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Na zagadnienie można by spojrzeć choćby z takich dwóch punktów:<br />
- poziom skomplikowania aplikacji &#8211; tylko jak to mierzyć? Ilością klas? Ilością kodu?<br />
- spodziewany ruch (ilość odwiedzin) &#8211; tu już można by się pokusić o podanie konkretnych liczb.</p>
<p>Co do szukania programistów Python-owych, to mam nadzieję, że jak już do tego punktu dotrzemy, to współpraca z MFI pomoże nam zaadresować ten punkt <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Zgadzam się także, że w temacie tego rodzaju aplikacji web-owych królują &#8222;PHP-owcy&#8221; (w temacie hostingu zresztą też), ale część z nich zaczyna dostrzegać ograniczenia tego języka i rozglądając się za czymś dojrzalszym <a href="http://blog.zeromski.com.pl/2008/05/python-migracja-z-php/" rel="nofollow">migrują w stronę Ruby lub właśnie Python-a</a>.</p>
<p>Tego typu ciekawych punktów do dyskusji jest mnóstwo &#8211; może za jakiś czas, jak uzbieramy bardziej pokaźny bagaż doświadczeń, porównać i przemyśleń pokusimy się o jakąś prezentację na <a href="http://spin-pl.org/gdansk.html" rel="nofollow">SPIN-ie</a> (bo na <a href="http://groups.google.com/group/jug-trojmiasto" rel="nofollow">JUG-a</a> to temat chyba nie specjalnie by się nadawał).</p>
<p>A co do języków do tego rodzaju aplikacji, to wydaje się że duo: <a href="http://groovy.codehaus.org/" rel="nofollow">Groovy</a>+<a href="http://grails.org/" rel="nofollow">Grails</a> też byłoby warte bliższej analizy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Michał Orzechowski</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-7</link>
		<dc:creator>Michał Orzechowski</dc:creator>
		<pubDate>Wed, 26 Nov 2008 09:19:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-7</guid>
		<description>@Tomek
Z tym &quot;szacowaniem rozmiaru much&quot; zawsze jest problem ;-). Moim zdaniem sztuka w tym zeby dobrac optymalne narzedzie. I tym chyba własnie pisal Mikolaj - to chyba coś takiego co pozwala zmaksymalizować wydajność pracy, narzędzie które bardziej pomaga niż przeszkadza. Ale czesto to bardzo subiektywna ocena ...</description>
		<content:encoded><![CDATA[<p>@Tomek<br />
Z tym &#8222;szacowaniem rozmiaru much&#8221; zawsze jest problem <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Moim zdaniem sztuka w tym zeby dobrac optymalne narzedzie. I tym chyba własnie pisal Mikolaj &#8211; to chyba coś takiego co pozwala zmaksymalizować wydajność pracy, narzędzie które bardziej pomaga niż przeszkadza. Ale czesto to bardzo subiektywna ocena &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Tomasz Borzyszkowski</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-6</link>
		<dc:creator>Tomasz Borzyszkowski</dc:creator>
		<pubDate>Tue, 18 Nov 2008 22:54:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-6</guid>
		<description>Tak sobie czytam ten wątek i:

- Mikołaju fajna analiza, brak tendencyjności Javowej w ocenach:)

- piszecie o doborze optymalnego narzędzia do wykonania/osadzenia serwisu; narzędzie zwykle dobiera się do parametrów zadania, które nie wynikają z kontekstu; Michał pisze o &quot;armatach i muchach&quot; - armaty przeanalizowane, tylko jaka jest ta mucha:)

- co do wyboru Pythona i Django, to wydaje się niezłym zestawem do średniej wielkości serwisów; problemem może być znalezienie programistów &quot;z doświadczeniem&quot;, jeżeli projekt ma się rozwinąć aż tak; od jakiegoś czasu uczę Pythona na MFI ale pewnie na rynku lekkich rozwiązań wciąż królują &quot;fachowcy&quot; od PHP; oczywiście porównanie Pythona z PHP nie ma sensu ... chociaż jako parametr analizy warto wziąć łatwość integracji z innymi rozwiązaniami

- prócz doboru &quot;armat&quot;, trzeba jeszcze zrobić dobry projekt,  niby oczywistość, ale widziałem już kilka projektów, które przestawały sobie radzić z własnym rozwojem; skutki opłakane choć rozciągnięte w czasie :(

To tyle moich 3gr.
Fajnej przygody z Pythonem.
Będę trzymał kciuki, Tomek</description>
		<content:encoded><![CDATA[<p>Tak sobie czytam ten wątek i:</p>
<p>- Mikołaju fajna analiza, brak tendencyjności Javowej w ocenach:)</p>
<p>- piszecie o doborze optymalnego narzędzia do wykonania/osadzenia serwisu; narzędzie zwykle dobiera się do parametrów zadania, które nie wynikają z kontekstu; Michał pisze o &#8222;armatach i muchach&#8221; &#8211; armaty przeanalizowane, tylko jaka jest ta mucha:)</p>
<p>- co do wyboru Pythona i Django, to wydaje się niezłym zestawem do średniej wielkości serwisów; problemem może być znalezienie programistów &#8222;z doświadczeniem&#8221;, jeżeli projekt ma się rozwinąć aż tak; od jakiegoś czasu uczę Pythona na MFI ale pewnie na rynku lekkich rozwiązań wciąż królują &#8222;fachowcy&#8221; od PHP; oczywiście porównanie Pythona z PHP nie ma sensu &#8230; chociaż jako parametr analizy warto wziąć łatwość integracji z innymi rozwiązaniami</p>
<p>- prócz doboru &#8222;armat&#8221;, trzeba jeszcze zrobić dobry projekt,  niby oczywistość, ale widziałem już kilka projektów, które przestawały sobie radzić z własnym rozwojem; skutki opłakane choć rozciągnięte w czasie <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>To tyle moich 3gr.<br />
Fajnej przygody z Pythonem.<br />
Będę trzymał kciuki, Tomek</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Mikołaj Kmita</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-5</link>
		<dc:creator>Mikołaj Kmita</dc:creator>
		<pubDate>Mon, 17 Nov 2008 22:04:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-5</guid>
		<description>Dzięki wszystkim za cenny feedback :)

&lt;em&gt;&lt;strong&gt;@Michał&lt;/strong&gt;&lt;/em&gt;
Oczywiście zgodzę się z Twoimi dodatkowymi kryteriami wyboru – co więcej zgodziłbym się jeszcze ze sporą ich ilością. Moim celem było opisanie naszych kryteriów... a tu na szczęście nie mamy żadnych specjalnych zewnętrznych ograniczeń - sky is the limit ;)
Zgadzam się także, że Apache to pamięciożerne stworzenie, ale są alternatywy w postaci &lt;a href=&quot;http://www.lighttpd.net/&quot; rel=&quot;nofollow&quot;&gt;lighthttpd&lt;/a&gt;, &lt;a href=&quot;http://nginx.net/&quot; rel=&quot;nofollow&quot;&gt;nginx&lt;/a&gt; i nawet &lt;a href=&quot;http://www.rafaljonca.org/blog/category/nginx/&quot; rel=&quot;nofollow&quot;&gt;testy porównawcze ich wydajności&lt;/a&gt; – choć po lekturze linka, którego zapodałeś, do tego rodzaju testów podchodzę z jeszcze większą rezerwą niż dotychczas. Tym samym napisanie miarodajnych testów porównawczych Tomcat versus lighthttpd+fcgi+python nie wydaje się być trywialnym zadaniem... więc może poprzestańmy na stwierdzeniu, z którym się zgadzamy, tj. &quot;szybkość developmentu&quot; przemawiająca za językami typowanymi dynamicznie.

&lt;em&gt;&lt;strong&gt;@Lukasz&lt;/strong&gt;&lt;/em&gt;
Zgodzę się z tezą wychwalania tego czego jeszcze nie znamy, ale pozwolę sobie nie zgodzić się z częścią pozostałych tez.

Być może napisalibyśmy to szybciej w czystym PHP-ie (ale IMHO nie byłyby to 10x, ani nawet 5x). Jednak problem jest gdzie indziej - pisanie w samym PHP-ie (czy też w JSP ze skrypletami sięgającymi bezpośrednio do bazy - co na początku też było nagminnie stosowane), bez użycia żadnego framework-a, który m.in. wymusi separację warstw, nie najlepiej się sprawdza, w momencie jak aplikacja zaczyna się rozrastać. Jej utrzymanie i dalszy rozwój stają się coraz bardziej kosztowne: próba zmiany struktury jakiejś tablicy może oznaczać konieczność przekopania dziesiątków plików, próba dołożenia jakiegoś standardowego sprawdzenia dla każdego żądania to samo, że o testach jednostkowych nie wspomnę... przykłady można by mnożyć.

W związku z tym, uważam że warto ponieść koszt wdrożenia framework-a, bo w dłuższej perspektywie taka inwestycja się zwraca (no, chyba że mamy noc na napisanie programu na zaliczenie i nigdy więcej nie zamierzamy go oglądać ;) ) Stąd też w naszej sytuacji tak czy inaczej z jakimś framework-iem powinniśmy się zapoznać - więc dlaczego nie z Django/Python, które zdają się mieć zdrowe podstawy :)

Co do przygody, to jak najbardziej masz rację… na pewno miało to swój wpływ na decyzję – ale cóż byłoby warte hobby/praca, ba życie, które nie jest jedną wielką przygodą (że pozwolę sobie na odrobinę filozofii :) )

&lt;em&gt;&lt;strong&gt;@Marcin&lt;/strong&gt;&lt;/em&gt;
Cóż… pozostaje mi się zgodzić z każdym zdaniem, które napisałeś, ale… ;)
Przyjrzyjmy się aplikacją webowym, one nie mają tysięcy klas biznesowych… jeśli chodzi o logikę biznesową są one dużo prostsze od ich tak zwanych „korporacyjnych” odpowiedników.
Jedyne więc co chciałem zasygnalizować, to fakt że w przypadku pisania pewnych (np. webowych) aplikacji języki typowane dynamicznie wydają się lepiej sprawdzać.

Jeszcze raz dziękuję wszystkim za feedback - na pewno nie omieszkamy podzielić się naszymi przemyśleniami za jakiś czas, gdy nabierzemy więcej doświadczeń w tej materii…
Zapraszamy więc do śledzenia dalszych losów naszej było, nie było &lt;strong&gt;przygody&lt;/strong&gt; :)</description>
		<content:encoded><![CDATA[<p>Dzięki wszystkim za cenny feedback <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em><strong>@Michał</strong></em><br />
Oczywiście zgodzę się z Twoimi dodatkowymi kryteriami wyboru – co więcej zgodziłbym się jeszcze ze sporą ich ilością. Moim celem było opisanie naszych kryteriów&#8230; a tu na szczęście nie mamy żadnych specjalnych zewnętrznych ograniczeń &#8211; sky is the limit <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Zgadzam się także, że Apache to pamięciożerne stworzenie, ale są alternatywy w postaci <a href="http://www.lighttpd.net/" rel="nofollow">lighthttpd</a>, <a href="http://nginx.net/" rel="nofollow">nginx</a> i nawet <a href="http://www.rafaljonca.org/blog/category/nginx/" rel="nofollow">testy porównawcze ich wydajności</a> – choć po lekturze linka, którego zapodałeś, do tego rodzaju testów podchodzę z jeszcze większą rezerwą niż dotychczas. Tym samym napisanie miarodajnych testów porównawczych Tomcat versus lighthttpd+fcgi+python nie wydaje się być trywialnym zadaniem&#8230; więc może poprzestańmy na stwierdzeniu, z którym się zgadzamy, tj. &#8222;szybkość developmentu&#8221; przemawiająca za językami typowanymi dynamicznie.</p>
<p><em><strong>@Lukasz</strong></em><br />
Zgodzę się z tezą wychwalania tego czego jeszcze nie znamy, ale pozwolę sobie nie zgodzić się z częścią pozostałych tez.</p>
<p>Być może napisalibyśmy to szybciej w czystym PHP-ie (ale IMHO nie byłyby to 10x, ani nawet 5x). Jednak problem jest gdzie indziej &#8211; pisanie w samym PHP-ie (czy też w JSP ze skrypletami sięgającymi bezpośrednio do bazy &#8211; co na początku też było nagminnie stosowane), bez użycia żadnego framework-a, który m.in. wymusi separację warstw, nie najlepiej się sprawdza, w momencie jak aplikacja zaczyna się rozrastać. Jej utrzymanie i dalszy rozwój stają się coraz bardziej kosztowne: próba zmiany struktury jakiejś tablicy może oznaczać konieczność przekopania dziesiątków plików, próba dołożenia jakiegoś standardowego sprawdzenia dla każdego żądania to samo, że o testach jednostkowych nie wspomnę&#8230; przykłady można by mnożyć.</p>
<p>W związku z tym, uważam że warto ponieść koszt wdrożenia framework-a, bo w dłuższej perspektywie taka inwestycja się zwraca (no, chyba że mamy noc na napisanie programu na zaliczenie i nigdy więcej nie zamierzamy go oglądać <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) Stąd też w naszej sytuacji tak czy inaczej z jakimś framework-iem powinniśmy się zapoznać &#8211; więc dlaczego nie z Django/Python, które zdają się mieć zdrowe podstawy <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Co do przygody, to jak najbardziej masz rację… na pewno miało to swój wpływ na decyzję – ale cóż byłoby warte hobby/praca, ba życie, które nie jest jedną wielką przygodą (że pozwolę sobie na odrobinę filozofii <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p><em><strong>@Marcin</strong></em><br />
Cóż… pozostaje mi się zgodzić z każdym zdaniem, które napisałeś, ale… <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Przyjrzyjmy się aplikacją webowym, one nie mają tysięcy klas biznesowych… jeśli chodzi o logikę biznesową są one dużo prostsze od ich tak zwanych „korporacyjnych” odpowiedników.<br />
Jedyne więc co chciałem zasygnalizować, to fakt że w przypadku pisania pewnych (np. webowych) aplikacji języki typowane dynamicznie wydają się lepiej sprawdzać.</p>
<p>Jeszcze raz dziękuję wszystkim za feedback &#8211; na pewno nie omieszkamy podzielić się naszymi przemyśleniami za jakiś czas, gdy nabierzemy więcej doświadczeń w tej materii…<br />
Zapraszamy więc do śledzenia dalszych losów naszej było, nie było <strong>przygody</strong> <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Marcin Wojda</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-4</link>
		<dc:creator>Marcin Wojda</dc:creator>
		<pubDate>Sun, 16 Nov 2008 18:24:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-4</guid>
		<description>Myślę, że chyba jednak trochę za wcześniej &quot;skreślamy&quot; języki statycznie typowane. To prawda, że statyczna kontrola z regułami typowania daje bardzo często złudne poczucie poprawności kodu programu, ale zaryzykuję tezę: w statycznym typowaniu statyczne typowanie wcale nie jest najważniejsze... ;-) Najważniejsze jest jawne określenie typów na poziomie interfejsu programistycznego (a cechę tą mają chyba tylko języki statycznie typowane, choć mogłaby występować również w językach o dynamicznych systemach typów).

W przypadku większego systemu (kilka tysięcy klas) jawne określanie typu ułatwia poznawanie nieznanych fragmentów i chroni przed wątpliwościami typu czy pole Termin zawiera liczbę dni, czy datę graniczną. Typ pola w klasie trwałej to przecież nic innego jak element logiki biznesowej, z którego można korzystać na przykład przy tworzeniu interfejsu użytkownika. I tu wielki plus dla Django, że typy pól określane są na poziomie modelu w sposób jawny, i że framework potrafi z tych informacji skorzystać generując UI.

Ponadto określanie typów pozwala na uniknięcie całej masy błędów, wobec których testy jednostkowe nie sprawdzają się najlepiej. Mam tu na myśli sytuację, w której funkcji zostanie przekazany parametr nieprawidłowego typu, bądź w polu obiektu pojawi się wartość innego typu niż spodziewany. Oczywiście możliwe jest dodanie kodu sprawdzającego parametry funkcji, czy też wartości przypisywane do pól obiektów, jednak oznacza to po części własną iterpretację funkcjonalnego odpowiednika statycznej kontroli typów. No ale w końcu DRY nie zakazuje powtarzania rozwiązań wymyślonych przez innych... ;-)

Trzymam kciuki za powodzenie projektu!</description>
		<content:encoded><![CDATA[<p>Myślę, że chyba jednak trochę za wcześniej &#8222;skreślamy&#8221; języki statycznie typowane. To prawda, że statyczna kontrola z regułami typowania daje bardzo często złudne poczucie poprawności kodu programu, ale zaryzykuję tezę: w statycznym typowaniu statyczne typowanie wcale nie jest najważniejsze&#8230; <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Najważniejsze jest jawne określenie typów na poziomie interfejsu programistycznego (a cechę tą mają chyba tylko języki statycznie typowane, choć mogłaby występować również w językach o dynamicznych systemach typów).</p>
<p>W przypadku większego systemu (kilka tysięcy klas) jawne określanie typu ułatwia poznawanie nieznanych fragmentów i chroni przed wątpliwościami typu czy pole Termin zawiera liczbę dni, czy datę graniczną. Typ pola w klasie trwałej to przecież nic innego jak element logiki biznesowej, z którego można korzystać na przykład przy tworzeniu interfejsu użytkownika. I tu wielki plus dla Django, że typy pól określane są na poziomie modelu w sposób jawny, i że framework potrafi z tych informacji skorzystać generując UI.</p>
<p>Ponadto określanie typów pozwala na uniknięcie całej masy błędów, wobec których testy jednostkowe nie sprawdzają się najlepiej. Mam tu na myśli sytuację, w której funkcji zostanie przekazany parametr nieprawidłowego typu, bądź w polu obiektu pojawi się wartość innego typu niż spodziewany. Oczywiście możliwe jest dodanie kodu sprawdzającego parametry funkcji, czy też wartości przypisywane do pól obiektów, jednak oznacza to po części własną iterpretację funkcjonalnego odpowiednika statycznej kontroli typów. No ale w końcu DRY nie zakazuje powtarzania rozwiązań wymyślonych przez innych&#8230; <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Trzymam kciuki za powodzenie projektu!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Lukasz</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-3</link>
		<dc:creator>Lukasz</dc:creator>
		<pubDate>Sun, 16 Nov 2008 13:33:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-3</guid>
		<description>Czy to nie jest tak, ze zawsze wychwalamy cos czego nie znamy? Zawsze wszystkim sie wydaje, ze na zachodzie jest lepiej, bo w Polsce kazdy juz wie jak jest. W naszym zespole znamy sie na Javie, PHP, a mimo to wybralismy Pythona. Cos o czym nie mamy zupelnie pojecia. :) W moim przypadku nie naciskalem na PHP, bo chetnie naucze sie czegos nowego. Wydaje sie, ze jest to swego rodzaju &#039;przygoda&#039; i moglo to przewazyc nad decyzja Mikolaja. Bo moglibysmy zrobic to samo w PHP i z 10x szybciej. A to, ze PHP nie do konca obsluguje obiektowosc jak C++ no to co? Bez obiektowosci przynajmniej zyskalibysmy na wydajnosci. :) Koncowy efekt bylby taki sam. A co nas czeka z Pythonem tego jeszcze nie wiemy, okaze sie w praniu. Zatem czemu wybralismy Pythona, a nie np. PHP, skoro wydluzy nam to czas pracy nad projektem a prawdopodobny efekt bedzie taki sam? Przygoda, przygoda ... ;)</description>
		<content:encoded><![CDATA[<p>Czy to nie jest tak, ze zawsze wychwalamy cos czego nie znamy? Zawsze wszystkim sie wydaje, ze na zachodzie jest lepiej, bo w Polsce kazdy juz wie jak jest. W naszym zespole znamy sie na Javie, PHP, a mimo to wybralismy Pythona. Cos o czym nie mamy zupelnie pojecia. <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  W moim przypadku nie naciskalem na PHP, bo chetnie naucze sie czegos nowego. Wydaje sie, ze jest to swego rodzaju &#8216;przygoda&#8217; i moglo to przewazyc nad decyzja Mikolaja. Bo moglibysmy zrobic to samo w PHP i z 10x szybciej. A to, ze PHP nie do konca obsluguje obiektowosc jak C++ no to co? Bez obiektowosci przynajmniej zyskalibysmy na wydajnosci. <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Koncowy efekt bylby taki sam. A co nas czeka z Pythonem tego jeszcze nie wiemy, okaze sie w praniu. Zatem czemu wybralismy Pythona, a nie np. PHP, skoro wydluzy nam to czas pracy nad projektem a prawdopodobny efekt bedzie taki sam? Przygoda, przygoda &#8230; <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Michał Orzechowski</title>
		<link>http://blog.profitto.pl/2008/11/wybor-technologii/#comment-2</link>
		<dc:creator>Michał Orzechowski</dc:creator>
		<pubDate>Sat, 15 Nov 2008 16:30:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.profitto.pl/?p=30#comment-2</guid>
		<description>Na początku wielkie podziękowania, za to, że chciało Ci się tym wszystkim podzielić :-). Nie ze wszystkim się zgadzam ale po kolei ..
	Wymieniłeś parę kryteriów wyboru technologii, ja od siebie dorzuciłbym jeszcze: odbiorcę docelowego (i istniejące środowisko klienta lub jego brak). Często jest tak, że technologię narzuca po prostu klient (np opcja hostingu którą dysponuje), o czym doskonale wiesz. Oczywiście, jeżeli zaczynamy projekt od zera i jest on w 100% zależny od naszych decyzji to wspaniale, ale pamiętajmy że nie zawsze rzeczywistość jest tak piękna.
	Piszesz o zaskoczeniu faktem, że w Javie nie pisze się serwisów webowych. Dokładnie to samo przeżyłem w okolicach lipca obecnego roku. Niesiony pytaniem znajomego, w czym najlepiej zrobić taki serwis pomyślałem &quot;.. hmm no Java&quot;. Zerknąłem do googlarki i ... wielkie zdziwienie ;-). Króluje oczywiście PHP (łatwy i brzydki język, masa gotowego kodu, tani jak barszcz hosting), poza tym Ruby. Czyli ogólnie języki typowane dynamiczne. Zastanawiałem się długo dlaczego tak jest i wyszło mi, że główne powody to: szybkość developmentu, koszty hostingu, łatwość znalezienia &quot;kadry&quot; (w naszym kraju dotyczy tylko PHP ;-)). Java a w szczególności Java EE to ogromna platforma. Mimo iż piąta odłona korporacyjnej wersji wprowadziła wiele uproszczeń, pisanie małego lub średniego serwisu www w oparciu o tą platformę to jak strzelanie z armaty do muchy.
	I do tego miejsca właściwie się zgadzam, dodatkowo poczytam sobie chętnie przywołane przez Ciebie teksty. Punktem z którym muszę się niezgodzić jest wydajność. Piszesz o tym, że Tomcat potrzebuje dużo ramu a mod_python zdecydowanie mniej. Hmm.. mod_python moze i tak, ale jeżeli spojrzysz na to, musisz go opakować Apachem to sprawa wygląda inaczej. Nie jestem eksperem od wydajnośći serwerów www ale ludzie których za takich mogę uważać nie używają Apache&#039;a, bo ... jest zasobożerny i wolny. Moim zdaniem cała dyskusja jezyki dynamicznie typowane vs języki statycznie typowane jest zupełnie jak ta rozmowa o świętach (Boże Narodzenie vs Wielkanoc). Po stronie języków dynamicznie typowanych leży większa elastyczność, po stronie języków statycznie typowanych mamy wydajność (gratuluję każdemu kto napisze serwis www w assemblerze ;-)). Ale większa elastyczność może (nie musi!) równać się większy bałagan i trudniejsze utrzymanie. A innej strony, język statycznie typowany jest językiem kompilowanym i jako taki stoi o krok przed językami interpretowanymi (niezależnie jak szybki interpreter mamy). Dlatego odpowiedź nie jest prosta,  a wszystkim, którzy chcą się o tym przekonać jak trudne może być wiarygodne oszacowanie problemu wydajności, polecam: http://www.ibm.com/developerworks/java/library/j-jtp02225.html
	Kończąc dodam, że ciekawi mnie Wasz wybór, i chętnie dowiem się jakie są Wasze doświadczenia i przemyślenia z perspektywy czasu. Zdecydowanie się na coś z czym nie mieliśmy do czynienia jest nie lada wyzwaniem i przygodą zapewne :-). Dlatego trzymam kciuki za sukces i kolejne wpisy dotyczące Waszej walki. Myślę, że to co jest najistotniejsze to , wybierać technologię świadomie, uciekając od przyzwyczajenia, mody czy czegokolwiek innego co nie ma nic wspólnego z tworzeniem wydajnych i elastycznych rozwiązań. Czego Wam i sobie życzę :-). Pozdrawiam.</description>
		<content:encoded><![CDATA[<p>Na początku wielkie podziękowania, za to, że chciało Ci się tym wszystkim podzielić <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Nie ze wszystkim się zgadzam ale po kolei ..<br />
	Wymieniłeś parę kryteriów wyboru technologii, ja od siebie dorzuciłbym jeszcze: odbiorcę docelowego (i istniejące środowisko klienta lub jego brak). Często jest tak, że technologię narzuca po prostu klient (np opcja hostingu którą dysponuje), o czym doskonale wiesz. Oczywiście, jeżeli zaczynamy projekt od zera i jest on w 100% zależny od naszych decyzji to wspaniale, ale pamiętajmy że nie zawsze rzeczywistość jest tak piękna.<br />
	Piszesz o zaskoczeniu faktem, że w Javie nie pisze się serwisów webowych. Dokładnie to samo przeżyłem w okolicach lipca obecnego roku. Niesiony pytaniem znajomego, w czym najlepiej zrobić taki serwis pomyślałem &#8222;.. hmm no Java&#8221;. Zerknąłem do googlarki i &#8230; wielkie zdziwienie <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Króluje oczywiście PHP (łatwy i brzydki język, masa gotowego kodu, tani jak barszcz hosting), poza tym Ruby. Czyli ogólnie języki typowane dynamiczne. Zastanawiałem się długo dlaczego tak jest i wyszło mi, że główne powody to: szybkość developmentu, koszty hostingu, łatwość znalezienia &#8222;kadry&#8221; (w naszym kraju dotyczy tylko PHP <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ). Java a w szczególności Java EE to ogromna platforma. Mimo iż piąta odłona korporacyjnej wersji wprowadziła wiele uproszczeń, pisanie małego lub średniego serwisu www w oparciu o tą platformę to jak strzelanie z armaty do muchy.<br />
	I do tego miejsca właściwie się zgadzam, dodatkowo poczytam sobie chętnie przywołane przez Ciebie teksty. Punktem z którym muszę się niezgodzić jest wydajność. Piszesz o tym, że Tomcat potrzebuje dużo ramu a mod_python zdecydowanie mniej. Hmm.. mod_python moze i tak, ale jeżeli spojrzysz na to, musisz go opakować Apachem to sprawa wygląda inaczej. Nie jestem eksperem od wydajnośći serwerów www ale ludzie których za takich mogę uważać nie używają Apache&#8217;a, bo &#8230; jest zasobożerny i wolny. Moim zdaniem cała dyskusja jezyki dynamicznie typowane vs języki statycznie typowane jest zupełnie jak ta rozmowa o świętach (Boże Narodzenie vs Wielkanoc). Po stronie języków dynamicznie typowanych leży większa elastyczność, po stronie języków statycznie typowanych mamy wydajność (gratuluję każdemu kto napisze serwis www w assemblerze <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ). Ale większa elastyczność może (nie musi!) równać się większy bałagan i trudniejsze utrzymanie. A innej strony, język statycznie typowany jest językiem kompilowanym i jako taki stoi o krok przed językami interpretowanymi (niezależnie jak szybki interpreter mamy). Dlatego odpowiedź nie jest prosta,  a wszystkim, którzy chcą się o tym przekonać jak trudne może być wiarygodne oszacowanie problemu wydajności, polecam: <a href="http://www.ibm.com/developerworks/java/library/j-jtp02225.html" rel="nofollow">http://www.ibm.com/developerworks/java/library/j-jtp02225.html</a><br />
	Kończąc dodam, że ciekawi mnie Wasz wybór, i chętnie dowiem się jakie są Wasze doświadczenia i przemyślenia z perspektywy czasu. Zdecydowanie się na coś z czym nie mieliśmy do czynienia jest nie lada wyzwaniem i przygodą zapewne <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Dlatego trzymam kciuki za sukces i kolejne wpisy dotyczące Waszej walki. Myślę, że to co jest najistotniejsze to , wybierać technologię świadomie, uciekając od przyzwyczajenia, mody czy czegokolwiek innego co nie ma nic wspólnego z tworzeniem wydajnych i elastycznych rozwiązań. Czego Wam i sobie życzę <img src='http://blog.profitto.pl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Pozdrawiam.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

