Czy ORM-y odejdą wkrótce do lamusa?
Stephen Schmidt, znany w środowisku programistów Javy autor bloga Code Monkeyism, postawił bardzo kontrowersyjną tezę, która może nie spodobać się wielu ludziom. Jego zdaniem mapowanie obiektowo-relacyjne (ORM) wkrótce odejdzie do lamusa, po części za sprawą coraz silniejszego ruchu NoSQL.
Jak wiadomo, mapowanie obiektowo-relacyjne to odwzorowanie obiektowej architektury systemu na bazę danych o charakterze relacyjnym. Prowadzi to do powstania wirtualnej obiektowej bazy, do której można uzyskać dostęp z logiki biznesowej aplikacji. Na rynku dostępnych jest wiele gotowych narzędzi do tego – np. Hibernate dla Javy, ADO.NET Entity Framework dla języków Microsoftu, czy SQLAlchemy dla Pythona. Jeszcze na początku wieku, ORM-y niepodzielnie królowały w świecie korporacyjnego oprogramowania. Sam autor kontrowersyjnej tezy o ich zmierzchu wyjaśnia, że jeszcze pod koniec ubiegłego stulecia napisał kilka własnych ORM-ów.
Jednak dzisiaj, zdaniem Schmidta, ORM-y to ułuda. Ich celem miało być szybkie tworzenie aplikacji i uniknięcie pisania wielokrotnie powtarzalnego kodu. Jednak przynoszą one problemy, które stają się znacznie większe, niż te korzyści.
Wydajność
Główny problem to wydajność – nikt nie chce zaglądać do logów Hibernate SQL z tego powodu, pisze Schmidt, ponieważ gdyby zobaczyć na własne oczy kwerendy przez ten ORM generowane, to mogłoby się to źle skończyć. Jak napisał niedawno na swoim blogu hatful of hollows niejaki Aldo z Nowej Zelandii, głównym powodem dla którego się korzysta z ORM-ów, jest magiczna fraza „niezgodność impedancji” (ang. impedancy mismatch), za co winę ponosi sama koncepcja języka zapytań, zakładająca brak algorytmicznej uniwersalności. Jednak czy takie magiczne myślenie ma sens?
Aldo pisze, że zależy to od tego, w jaki sposób i jak często „abstrakcje nawalają” – a w wypadku ORM-ów dzieje się to nader często. Można wykorzystać ORM-a i myśleć na poziomie obiektowym, ale kiedy trzeba zrobić cokolwiek bardziej skomplikowanego, np. zoptymalizować kwerendę, „znów jesteśmy w krainie tabel i kluczy zewnętrznych”. ORM-y nie rozwiązują problemu niezgodności impedancji, lecz tylko go odsuwają w czasie.
«poprzednia 1 2 następna »
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
29
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
Maciekkkk Strona nie działa!
WebDev @eimi®
Zdobyte inaczej niż pieniędzmi, czyli jak? Czy mógłbyś to rozwinąć...
eimi @Webdev, a ja jeszcze raz Ci powiem - to co zdobyte inaczej niż pieniędzmi...
sade Powodem dla którego klienci wybierają ten sklep jest ich niewiedza.
lukaszposadowski Wydaje mi się, że użyte sformułowania "normalny pasek" oraz "normalny...
eanenu Tim Schafer zbiera. Początkujący też zbierze? Z zachwytu nad tym...
cziko I ten tytuł - "Xperia S – przekracza granice wyobraźni". po prostu miszcz!
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 mikimoto 2009-10-18 18:16:55 0
IP: 95.108.33.[...] Opera/9.80 (X11; Linux i686; U; en) Presto/2.2.15 Version/10.00
#2 karion 2009-10-19 08:29:51 0
IP: 77.253.214.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 (.NET CLR 3.5.30729)
#3 leszlo 2009-10-19 13:05:33 0
IP: 83.14.144.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14
#4 Pablo77 2009-10-19 14:57:18 0
IP: 81.139.189.[...] Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14
#5 nigras 2009-10-19 20:31:21 -1
Pokaż komentarzIP: 194.106.193.[...] Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14
#6 Jan Koprowski® 2009-10-20 07:53:31 -1
Pokaż komentarzIP: 89.79.56.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0
#7 Holden Caulfield® 2009-10-20 10:41:08 0
IP: 83.6.8.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.222.12 Safari/532.2
#8 Gff 2009-10-20 13:39:11 0
IP: 194.146.120.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0
#9 MJS 2009-10-21 09:11:22 1
IP: 78.8.126.[...] Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
#10 Pablo77 2009-10-21 10:55:51 0
IP: 87.194.64.[...] Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14
#11 Gff 2009-10-25 20:09:42 0
IP: 79.110.195.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
#12 Gff 2009-10-25 20:11:04 0
IP: 79.110.195.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
#13 Pablo77 2009-10-27 10:37:03 0
IP: 87.194.64.[...] Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14
#14 hipertracker® 2009-10-30 03:12:27 1
IP: 78.16.205.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; pl; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4
#15 hipertracker® 2009-10-30 03:20:55 0
IP: 78.16.205.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; pl; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4
#16 AdamB 2009-10-30 09:56:51 0
IP: 87.206.165.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090910 Ubuntu/9.04 (jaunty) Shiretoko/3.5.3
#17 hipertracker® 2009-10-30 12:00:29 1
IP: 89.167.220.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4