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 »
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
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
11
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
Dave Smith Jestem Pastor Dave Smith prywatny pożyczkodawca pieniądze, z czego ponad...
marcusm Fajna reklama produktu za 500 zł
rza a to starsze aplikacje nie będą działać i kompilacja pod Windows SDK 7.1...
Krzaczor @Jakub Szymański: Możesz zalinkować do opisów jakichś polskich przypadków...
Krzaczor Ale oprogramowanie skompilowane dla Windows 7 ruszy przecież na ósemce...
ankaa Ja to czytam "plejsnow", a nie placek nał :) Nie wiem, co macie z tym...
veramird Są jeszcze studenci i msdaa co pozwoli dużej grupie używać pisać dalej za...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- 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)
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