Przejście z Delphi 7 na XE7

Odpowiedz Nowy wątek
2015-04-01 22:32

Rejestracja: 7 lat temu

Ostatnio: 3 lata temu

0

Witam. Jakiś czas temu dość intensywnie programowałem na Delphi 7. Ostatnimi czasy doszedłem do wniosku, że czas odświeżyć sobie trochę wiedzę, ale jednocześnie przesiąść się na coś nowszego. Mam tu na myśli XE 7. Czy to będzie bolesny przeskok? Widziałem tak po pierwszej godzinie zabawy, że naprawdę sporo rzeczy się zmieniło.

Pozostało 580 znaków

2015-04-01 23:09

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Gorlice

1

To zależy jak szybko ktoś przyswaja wiedzę czy chce się uczyć nowości (a nie musi) ale do wszystkiego idzie się przyzwyczaić. Fakt przez lata wiele się zmieniło nie tylko w środowisku ale i w języku (doszło trochę rzeczy i wprowadzono UNICODE) ale to raczej nie problem się nauczyć... stopniowo, bo chyba nie musisz wszystkich nowości poznać na jutro więc raczej rozejdzie się po kościach. O bolesnym przeskoku można by było mówić gdybyś miał jakieś duże projekty przenieść na nowe środowisko.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.

Pozostało 580 znaków

2015-04-02 09:26

Rejestracja: 16 lat temu

Ostatnio: 18 godzin temu

0

"Doszło trochę rzeczy" to eufemizm.
Przejście z Delphi7 do XE7 zmienia wszystko, poza ogólną filozofią programowania w Delphi. A Unicode to najmniejszy problem - albo inaczej, to żaden problem w przypadku nowych projektów.
Jest mnóstwo zmian w tym co widać (np. IDE) i w tym czego nie widać (język i jego możliwości, kompilator), ale na szczęście generalnie są to zmiany na lepsze.
Tak czy siak - absolutnie warto migrować do XE7 i omijać szerokim łukiem XE6, zwłaszcza jeśli ktoś będzie używał baz danych.

A to XE6 to jakaś beta była? Bo mnie się zdawało, że sprzedawali to za $$$ jako "stable" i "production ready" :D - Krolik 2015-04-03 09:41

Pozostało 580 znaków

2015-04-03 09:39
Moderator

Rejestracja: 16 lat temu

Ostatnio: 1 dzień temu

1

Można, tylko po co? Jeśli to nie jest wymaganie zewnętrzne, np. masz projekt, który musisz przenieść, albo bo pracujesz w firmie, która używa Delphi i myśli nad zakupem nowej wersji, to nie lepiej ten czas poświęcić na nauczenie się innego, nowocześniejszego języka / technologii? Twoje pytanie brzmi trochę jak "znam Perla 5, czy trudno się przestawić na Perla 6" albo "znam VB6, czy warto iść w VB.NET?" Podejrzewam, że ilość pracy jaką musiałbyś włożyć w nauczenie się C# / Javy będzie w sumie niewiele większa, a wzrost Twojej wartości jako programista na rynku pracy i możliwości znacznie większe. Nawet najnowsze Delphi jest mocno w tyle względem tych technologii pod praktycznie każdym względem (IDE, kompatybilność z bazami danych, język programowania, wsparcie społeczności open-source, wsparcie techniczne firm trzecich, stabilność działania, jakość produkowanego kodu wynikowego, cena).

edytowany 1x, ostatnio: Krolik, 2015-04-03 09:40

Pozostało 580 znaków

2015-04-03 10:16

Rejestracja: 16 lat temu

Ostatnio: 18 godzin temu

1
Krolik napisał(a):

Można, tylko po co? Jeśli to nie jest wymaganie zewnętrzne, np. masz projekt, który musisz przenieść, albo bo pracujesz w firmie, która używa Delphi i myśli nad zakupem nowej wersji, to nie lepiej ten czas poświęcić na nauczenie się innego, nowocześniejszego języka / technologii?

No to zacznijmy flame; co to za nowocześniejsza, lepsza, wszystko-mająca technologia? .NET a może Java? Pewnie, ale zależy do czego - bo w pewnych kwestiach Delphi bije jedno i drugie na głowę, a w innych jest dokładnie odwrotnie.
Poza tym, nie wiem jak OP, ale ja Delphi znam doskonale i mogę zrobić w nim wszystko czego potrzebuję i to niejednokrotnie szybciej, lepiej i taniej niż w powyższych. Tylko na takie pytanie każdy musi odpowiedzieć sobie sam, to nie jest takie oczywiste...

Twoje pytanie brzmi trochę jak "znam Perla 5, czy trudno się przestawić na Perla 6" albo "znam VB6, czy warto iść w VB.NET?" Podejrzewam, że ilość pracy jaką musiałbyś włożyć w nauczenie się C# / Javy będzie w sumie niewiele większa, a wzrost Twojej wartości jako programista na rynku pracy i możliwości znacznie większe.

Pokaż mi te znacznie większe możliwości, chętnie się z nimi zapoznam.

Nawet najnowsze Delphi jest mocno w tyle względem tych technologii pod praktycznie każdym względem (IDE, kompatybilność z bazami danych, język programowania, wsparcie społeczności open-source, wsparcie techniczne firm trzecich, stabilność działania, jakość produkowanego kodu wynikowego, cena).

No to weźmy te względy;

  • IDE; to w sumie jest kwestia gustu, ale ja lubię swoje IDE. Doposażone w MMX, CnWizards i DI nie odstaje za bardzo od innych bardzo dobrych.
  • kompatybilność z bazami danych; no tu chyba się totalnie zapędziłeś, Delphi od zawsze oferowało doskonałe wsparcie dla baz danych i nic w tym względzie się nie zmieniło na gorsze. Jest tylko lepiej, czyli dostępność FireDAC, UniDAC;a i ORMów.
  • język programowania; to jest zawsze kwestia gustu. Ktoś wychowany na C nigdy tego nie łyknie, jak ja nigdy nie łyknę składni Basicowo podobnej. Co do możliwości samego język, czego Ci brak?
  • wsparcie społeczności open-source; fakt, nie ma tego tyle co np. dla .NET czy Java, ale bez przesady - nie ma tez pustyni. A samych projektów OpenSource przez ostatnie 4 lata pojawiło się naprawdę sporo.
  • wsparcie techniczne firm trzecich; chodzi o dostępność komercyjnych dodatków? Jet ich cała masa.
  • stabilność działania; jest sporo narzekań na stabilność IDE w sieci, ale z mojego doświadczenia wygląda to całkowicie inaczej niż można tam wyczytać. Potrafię np. nie wyłączać IDE przez miesiąc i cały czas działa stabilnie. To chyba wystarczająco stabilnie?
  • jakość produkowanego kodu wynikowego; rozumiem, że jakość kodu np. Javy jest "lepsza" niż Delphi? Jaasne... OK, może nie nadaje się to do pisania po wyciągnięciu z pudełka super-wydajnych i zoptymalizowanych rozwiązań, ale co się nadaje? A do "normalnych" biznesowych zastoso0wań jest wystarczająco dobrze. A może i bardzo dobrze.
  • cena; Fakt - Delphi jest za drogie, zwłaszcza patrząc na to z naszego podwórka.
Pokaż pozostałe 4 komentarze
MongoDB najpopularniejszy w tej chwili NoSQL: nawet drivery do Scali, Perla, Go i Erlanga są na liście. Delphi nie ma. http://docs.mongodb.org/ecosystem/drivers/ Oracle nie ma niestety na swoich stronach nigdzie listy wszystkich driverów, ale jak wpiszę w Google "Oracle Delphi driver" to nie kieruje bynajmniej na strony Oracle tylko jakiegoś niezależnego producenta driverów. Ok, może te drivery są w pełni funkcjonalne, ale na Oracle świat się nie kończy. - Krolik 2015-04-03 12:04
To gdzie niby te startupy szukają ludzi? Bo nie widać tego w ofertach pracy. Owszem, jakieś są, ale nawet dla niszowych języków jak Scala czy Perl ofert jest kilkakrotnie więcej, nie mówiąc o mainstreamie jak .NET. Ja nikomu nie zabraniam kodować w Delphi, ale jeśli ktoś serio planuje karierę, to niech weźmie pod uwagę, że inwestuje czas w bardzo niszową technologię o mało jasnej przyszłości, będącą na łasce głównie jednej niewielkiej firmy (żeby nie powiedzieć - większego startupu), żeby nie pluł sobie później w brodę jak będzie szukał pracy. - Krolik 2015-04-03 12:09
Poza tym w Polsce Delphi jest paradoksalnie bardziej popularne niż w USA. Jak kiedyś temat rozmów w firmie zszedł na Pascala Delphi (bo kiedyś kodowałem i mamy paru programistów, którzy coś tam dawno temu w Pascalu robili), to większość ze zdziwieniem pytała "a to w ogóle jeszcze żyje?" - Krolik 2015-04-03 12:12
Też byłem zaskoczony, gdy kiedyś w knajpie spotkałem programistę Delphi. - datdata 2015-04-03 12:14
Jak to w starym dowcipie - "w tym roku konferencja programistów Delphi się nie odbędzie - jeden zachorował na grypę, a drugiemu nie chce się przyjeżdżać samemu" - Krolik 2015-04-03 12:16

Pozostało 580 znaków

2015-04-03 14:15

Rejestracja: 16 lat temu

Ostatnio: 18 godzin temu

1

@Krolik, czego nie rozumiesz, kiedy powiedziałem Ci, że nie będę dyskutował w komentarzach?

MongDB (programista, który nie umie szukać informacji - ciekawe...):
http://docs.mongodb.org/ecosy[...]/community-supported-drivers/
Polecam ten ostatni, bo jest naprawdę dobry a cały mORMot (to nie jest tylko ORM) bije na głowę wydajnością WCFa i rozwiązania Javove.
Poza tym - rozumiem, że stawiasz na MongoDB wszystko jak leci?

FireDAC, czyli oficjalna wspiera przez producenta warstwa DAL dla Delphi obsługuje Oracle i fafnaście innych baz danych. Włącznie z dedykowanymi extrasami dla poszczególnych - jak chociażby Events dla Firebird (Jybird też to wspiera, od pół roku. Delphi od ponad 10 lat - i co z tego?) lub BLOB streaming ze wsparciem dla filestream w MSSQL.

Nie interesują mnie opinie korpo-koderów i ich czy "to jeszcze żyje?". Oni mają wydzielony kawałek do zrobienia i nic więcej ich nie obchodzi. I na niczym innym się nie znają, najczęściej... Ale nieważne. To nie jest dyskusja, tylko Twoja subiektywna opinia, poza tym absolutnie nie na temat.
A temat nie dotyczy pytania czy Delphi jest dobre dla kogoś, kto wchodzi na rynek pracy, tylko o różnice pomiędzy XE7 a 7.
Rozumiem, że posiadasz szerokie doświadczenie w jednym i drugim, aby cokolwiek sensownego, dla odmiany, powiedzieć? No to powiedz w końcu.

Poza tym, można powiedzieć że jestem programistą Delphi i jakoś na brak pracy nie narzekam, a wręcz przeciwnie. Ale zgoda - nie jestem typowym programistą a tym bardziej typowym pracownikiem.
Co do startupów - pokaż mi jakiś naprawdę ciekawy, który nie będzie kalką tego co znane od lat. Al tak naprawdę... język czy tam IDE, to sprawa drugorzędna. Jeśli weźmiesz najlepsze dostępne narzędzie i średnich "fachowców" to otrzymasz mierny produkt. A mierny dlatego, bo nie wszystko wiedza i rozumieją z zakresu bibliotek i możliwości języka, a przede wszystkim - ze świecą szukać programisty, który interesuje się i zna na dziedzinie problemu.
I odwrotnie - jeśli weźmiesz średnie narzędzia i doskonałych fachowców, to otrzymasz doskonały produkt.
Załóżmy, że Delphi jest średnie - ale to naprawdę zależy do czego.

Nie chodzi o to, czy jest jakiś ciekawy startup, czy nie, bo 9 na 10 upadnie w ciągu 5 lat. Chodzi jednak o wybór ludzi - czego używają jeśli nikt im nie narzuca wyboru. W startupach właśnie tak jest - założyciele mają pełny wybór odnośnie technologii. To czego startupy dzisiaj używają, za 5 lat będzie powszechne w korporacjach, bo część tych startupów sama stanie się korporacjami i wygryzie niektóre obecne korporacje z rynku, a inne będą naśladować. - Krolik 2015-04-03 15:35

Pozostało 580 znaków

2015-04-03 15:26
Moderator

Rejestracja: 16 lat temu

Ostatnio: 1 dzień temu

2

MongDB (programista, który nie umie szukać informacji - ciekawe...):

To, co wkleiłeś, to nie jest oficjalny sterownik od MongoDB, a "community-supported-driver". Takie sterowniki znajdzie się dla najbardziej niszowej, absurdalnej technologii i ich istnienie niczego nie dowodzi. Dla firm takie strowniki praktycznie nie istnieją, bo nie można nabyć do nich wsparcia technicznego. Liczy się, to co producent bazy wspiera oficjalnie. Javę, C#, Pythona, JS wspiera, Delphi nie wspiera. Dla mnie to wystarczające aby uznać, że Delphi ma gorszą kompatybilność z bazami danych (zwłaszcza nowymi) niż nowsze technologie.

A FireDAC to tylko warstwa abstrakcji, a nie sterownik. Bazuje na sterowniku do innego języka (zapewne C) i wprowadza dodatkowy własny narzut.

jakość produkowanego kodu wynikowego; rozumiem, że jakość kodu np. Javy jest "lepsza" niż Delphi? Jaasne...

Na ogół jest lepsza, czasem nawet znacznie:
http://stackoverflow.com/ques[...]elphi-java-faster-than-delphi
http://webandlife.blogspot.co[...]ce-vs-delphi-performance.html

Ale to nie jest nawet zasługa Javy czy .NET, a tego, że kompilator Delphi jest zwyczajnie słaby i dostaje bęcki nawet od FPC:
http://delphihaters.blogspot.[...]d-in-lining-inside-story.html

W samych bibliotekach Delphi jest parę rzeczy zrobionych słabo z punktu widzenia wydajności - np. copy-on-write strings czy cała zabawa w reference counting (smart pointery). Nowe wersje Delphi XE mają wprawdzie mniej błędów niż poprzednie wersje Delphi (Delphi 2007-2010 miały bug na bugu), ale wydajnościowo rewolucji nie było.

http://sohu.io/questions/1427[...]-faster-code-than-delphi-2007

Nie sądzę, aby tak mała firma jak Embarcadero z tak ambitnym planem (wsparcie dla Android, iOS, Windows, własny kompilator, własne IDE i jeszcze własne stery do baz danych; co będzie następne - własny OS?) miała jeszcze zasoby aby popracować porządnie nad kompilatorem. To nie jest Microsoft czy Oracle z miliardami dolarów płacący seniorom po 200-300k USD rocznie.

To nie jest dyskusja, tylko Twoja subiektywna opinia, poza tym absolutnie nie na temat.

O, wreszcie coś do rzeczy. I dlatego uparcie pisałem w komentarzu - bo komentarz to miejsce na tematy poboczne.

Żeby było na temat, to podam jeden przykład Delphi 7 vs XE jaki mi się nasunął. W XE np. będziesz chciał poznać np. lambdy wprowadzone w 2009r. (nazwane nie wiedzieć czemu metodami anonimowymi). O ile pisanie z lambdami w języku z GC nie jest jakimś wyczynem (C#, F#, Java, Scala), bo system przejmuje na siebie prawidłowe zarządzanie cyklem życia obiektów złapanych w kontekście lambdy, to w przypadku Delphi już nie jest tak prosto - w sumie bez dogłębnego zrozumienia co się dzieje pod spodem, i co robi kompilator łatwo wpakować się w tarapaty lub ciekawe przypadki brzegowe:
http://stackoverflow.com/ques[...]ethod-in-project-leaks-memory

Z drugiej strony, zmiany w języku wcale nie były znowu takie rewolucyjne - tu masz listę zmian w jednej z odpowiedzi:
http://stackoverflow.com/ques[...]ch-they-were-introduced-depre

edytowany 2x, ostatnio: Krolik, 2015-04-03 16:51

Pozostało 580 znaków

satq
2015-04-03 20:48
satq
0

@Krolik Ty masz chyba jakieś kompleksy jak "niszowa technologia Delphi" Ci nie pasuje to po co udzielasz się w tym dziale ...?
Aby nie odbiec od tematu wątku dodam że idzie bez problemu przekompilować projekty z Delphi 7 oparte o BDE, oczywiście zalecaną technologią jest FireDac.

Pozostało 580 znaków

2015-04-03 21:58

Rejestracja: 8 lat temu

Ostatnio: 1 minuta temu

2

Pozwolę sobie zignorować powyższą świętą wojnę i zaproponuję autorowi wątku tak:

  • możesz spróbować przejść na Free Pascal (darmo, Linux/Windows/Mac/etc.)
  • możesz przejść na C# (nowocześniejszy język, wbudowany framework GUI, ma webdev, IDE za darmo w wersji VS Community lub MonoDevelop)

XE7 jest dobre jeśli Twoja firma ma już na to licencję i nie wie co z nią zrobić (zdarza się).
Jeśli masz zamiar spiracić to można równie dobrze wybrać drogę legalną (patrz wyżej).
Jeśli masz zamiar kupić - to wg mnie szkoda kasy.
Głównie przez vendor lock-in dla sterowników baz danych (komercyjne sterowniki firm trzecich - jeśli są, nie są czymś czego chciałbym używać bez źródeł, czyli dodatkowy koszt).
Bywa że klient chce sam rozwijać aplikację, przy koszcie Delphi XEx taka możliwość jest od razu mniej atrakcyjna od konkurencji.

Gdyby proponowali kompilator Delphi za darmo + okrojone IDE za jakieś grosze (do 500 zł) to można by się zastanawiać.
Może z czasem zmądrzeją. Ale raczej małe szanse na to.


Szacuje się, że w Polsce brakuje 50 tys. programistów
edytowany 1x, ostatnio: vpiotr, 2015-04-03 21:59
Na zmądrzenie mieli już wystarczająco dużo czasu, ale tego nie zrobili; - furious programming 2015-04-03 22:04
Wygląda na to że ich strategia to dodawanie kolejnych ficzerów i windowanie ceny. Czy taka strategia może się sprawdzić w przypadku IDE? Śmiem wątpić. - vpiotr 2015-04-03 22:06
I niepoprawianie błędów. Są błędy, które nie zostaly poprawione od czasów xe2. - Krolik 2015-04-03 22:16

Pozostało 580 znaków

2015-04-04 06:55

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Gorlice

0

Ja napisze jeszcze jedno do 31 marca można było zakupując Delphi XE7 przy okazji w cenie Delphi XE7 nabyć XE8 bo była promocja teraz już jej nie ma. Swoją drogą myślę że Embarcadero źle robi nie wypuszczając darmowej wersji środowiska dla amatorów hobbystów i tym odstrasza ludzi którzy na początku ucząc się chcą czegoś darmowego i wybierają VS a przecież nikt kto załóżmy kilka lat siedział na C# (w VS) nie przejdzie nagle na Delphi.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Pokaż pozostałe 6 komentarzy
Nietrywialny kod? Np. taki: http://qc.embarcadero.com/wc/qcmain.aspx?d=122179 ? Kompilator Delphi XE ma czasem problemy z podstawową składnią. Albo błędy, których wystąpienie uwala kompilator na amen i trzeba restartować całe środowisko: http://qc.embarcadero.com/wc/qcmain.aspx?d=91327. Takie rzeczy są dobre w wersji beta. Może mamy inne wymagania, ale ja od czegoś, co kosztuje tyle co Delphi wymagałbym znacznie lepszego poziomu jakości. Zwłaszcza, że darmowy .NET i darmowa Java są pod względem kompilatora solidne jak skała. - Krolik 2015-04-04 15:18
BTW: Nie twierdzę, że jest do niczego, tylko że jest w tyle za Javą i .NET, przynajmniej jeśli chodzi o język i kompilator. Graficznych wizardów do robienia formatek nie oceniam, bo to nie moja bajka. - Krolik 2015-04-04 15:20
A Twoją bajką jest co? Serwery? Napisałeś jakikolwiek w Delphi czy powtarzasz bzdury zasłyszane na blogach, że się nie nadaje? - wloochacz 2015-04-04 17:14
Teraz serwery i bazy danych, dawniej aplikacje klienckie, w tym w Delphi. Na serwery nigdy się nie nadawało, na klienckie się nadaje, ale goni inne technologie. - Krolik 2015-04-04 17:51
Na serwery nigdy się nie nadawało? No cóż, ja mam inną opinię. Ciekawe co by powiedział autor mORMota, który rozwija framework który staje w szranki z WCFem i Grizzly. I nie stoi za nim Oracle ani MS. - wloochacz 2015-04-04 18:00

Pozostało 580 znaków

2015-04-04 14:29

Rejestracja: 16 lat temu

Ostatnio: 18 godzin temu

1
Krolik napisał(a):

MongDB (programista, który nie umie szukać informacji - ciekawe...):

To, co wkleiłeś, to nie jest oficjalny sterownik od MongoDB, a "community-supported-driver". Takie sterowniki znajdzie się dla najbardziej niszowej, absurdalnej technologii i ich istnienie niczego nie dowodzi.

Prawda, znajdą się takie sterowniki i nieprawda, że to niczego nie dowodzi. Mogę obsłużyć MongoDB z poziomu Delphi czy nie mogę? Oczywiście, że mogę.
Chcesz mieć support - to zapłać np. mORMotowi i będziesz miał, na stronie jest informacja jak to zrobić.

Dla firm takie strowniki praktycznie nie istnieją, bo nie można nabyć do nich wsparcia technicznego. Liczy się, to co producent bazy wspiera oficjalnie. Javę, C#, Pythona, JS wspiera, Delphi nie wspiera. Dla mnie to wystarczające aby uznać, że Delphi ma gorszą kompatybilność z bazami danych (zwłaszcza nowymi) niż nowsze technologie.

A możesz sobie uznawać co Ci się żywnie podoba, tylko to wygląda co najmniej kuriozalnie...
To, że na oficjalnej stronie MongoDB nie ma wsparcie nie świadczy o tym, że Delphi nie ma dobrego wsparcia do baz danych w ogóle. To jet piramidalna bzdura!

Dla mnie takie rozwiązania często mają większy sens, niż oficjalne i komercyjne - support jest po prostu lepszy, a reakcja na błędy jest praktycznie natychmiastowa.
Dla ogromnej korporacji z setkami developerów faktycznie może to być nie do przyjęcia. Ale ja takiej korpo nie prowadzą, nie będę i nawet nie chciałbym. Poza tym, to co robi 30 programistów Javy zrobi 3 programistów Delphi:
http://stevepeacocke.blogspot[...]phi-why-wont-it-just-die.html
I mogę tak do jutra, i Ty też - czego to dowodzi? Niczego, poza tym, że ktoś zrobił sobie jakiś test i można w nim udowodnić wszystko.

A FireDAC to tylko warstwa abstrakcji, a nie sterownik. Bazuje na sterowniku do innego języka (zapewne C) i wprowadza dodatkowy własny narzut.

Naprawdę?
Rozumiem, że taki np. ADO.NET to też warstwa abstrakcji, bo działa dokładnie w ten sam sposób co FireDAC (zresztą podobieństw jest więcej, ale pewnie nie masz o tym zielonego pojęcia, bo dla Ciebie FireDAC to tylko kontrolka do obsługi bazy danych) - czyli korzysta de-facto z oficjalnej biblioteki producenta bazy danych na daną platformę. Czyli np. dla MSSQL będzie to SQL Server NativeClient, dla Firbird będzie to fFbClient itd.

jakość produkowanego kodu wynikowego; rozumiem, że jakość kodu np. Javy jest "lepsza" niż Delphi? Jaasne...

Na ogół jest lepsza, czasem nawet znacznie:
http://stackoverflow.com/ques[...]elphi-java-faster-than-delphi
http://webandlife.blogspot.co[...]ce-vs-delphi-performance.html

Poważnie? No zobacz, a ja znalazłem co innego:
http://compaspascal.blogspot.[...]delphi-is-fast-very-fast.html

Ale to nie jest nawet zasługa Javy czy .NET, a tego, że kompilator Delphi jest zwyczajnie słaby i dostaje bęcki nawet od FPC:
http://delphihaters.blogspot.[...]d-in-lining-inside-story.html

W samych bibliotekach Delphi jest parę rzeczy zrobionych słabo z punktu widzenia wydajności - np. copy-on-write strings czy cała zabawa w reference counting (smart pointery).

Akurat obsługa stringów w Delphi jest szalenie wygodna, ale zgoda że trzeba uważać (czyli pamiętać o przekazywaniu wartości przez const lub var) w newralgicznych miejscach, które wymagają wydajności. A najlepiej uczynić z tego nawyk.
To nie jest argument na nie, tylko na tak dla Delphi - ale coś za coś.

Poza tym, nie porównaj mi tu ref countingu do języków z wbudowanych GC - to zupełnie inna filozofia programowania!
I dlatego (i nie tylko dlatego), moje serwery napisane w Delphi przy tym samym obciążeniu zeżrą 233x mniej ramu od Javy i 300x mniej niż .NET dla identycznych rozwiązań. Zachowując przy tym co najmniej taką samą wydajność. CO NAJMNIEJ. Wiem, że to może boleć kogoś, kto na co dzień używa najnowocześniejszych technologii, a tu pojawia się coś co powinno zdechnąć dekadę temu i na dodatek "robi robotę".
Rozumiem, że dla "firmy" to bez znaczenia, bo ma być "nowocześnie" a nie dobrze.
Ach, źródło:
http://blog.synopse.info/post[...]CF,-Java,-DataSnap-and-mORMot

Zaraz mi powiesz, że to się nie liczy dla firmy bo nie ma oficjalnego wsparcia. OK, ale dokładnie w ten sam sposób możesz wywalić wszelkie otwarte projekty.

Nowe wersje Delphi XE mają wprawdzie mniej błędów niż poprzednie wersje Delphi (Delphi 2007-2010 miały bug na bugu),

Coś tam słyszałeś, ale niedokładnie...
Bug na bugu był w D2009, a D2007 jest jednym z najstabilniejszych IDE.
W D2010 było znacznie lepiej, ale dalej sypało się na typach generycznych.

ale wydajnościowo rewolucji nie było.
http://sohu.io/questions/1427[...]-faster-code-than-delphi-2007
Bo i nie o wydajność tam chodziło, tylko o rozwinięcie języka, który utknął na prawie 10 lat!
Nie sądzę, aby tak mała firma jak Embarcadero z tak ambitnym planem (wsparcie dla Android, iOS, Windows, własny kompilator, własne IDE i jeszcze własne stery do baz danych; co będzie następne - własny OS?)

To miał być sarkazm? To akurat nie wyszło. Widzisz, ala mnie np. jest to doskonałe rozwiązanie. Ale ja nie wymagam od rozwiązań mobilnych wydajności graficznej jak gra - to ma pracować i zarabiać pieniądze dla firmy, a nie oszałamiać graficznymi fajerwerkami.

miała jeszcze zasoby aby popracować porządnie nad kompilatorem. To nie jest Microsoft czy Oracle z miliardami dolarów płacący seniorom po 200-300k USD rocznie.

Znów subiektywna opinia poparta "rzetelnymi" faktami... Może tak - pożyjemy, zobaczymy.

To nie jest dyskusja, tylko Twoja subiektywna opinia, poza tym absolutnie nie na temat.

O, wreszcie coś do rzeczy. I dlatego uparcie pisałem w komentarzu - bo komentarz to miejsce na tematy poboczne.

Żeby było na temat, to podam jeden przykład Delphi 7 vs XE jaki mi się nasunął. W XE np. będziesz chciał poznać np. lambdy wprowadzone w 2009r. (nazwane nie wiedzieć czemu metodami anonimowymi).

Znowu coś tam słyszałeś, ale nie do końca rozumiesz.
W Delphi nie ma wyrażeń-lambda do dziś.
W Delphi są metody anonimowe, a metoda anonimowe to nie jest wyrażenie-lambda. Doczytasz, to załapiesz różnicę.

O ile pisanie z lambdami w języku z GC nie jest jakimś wyczynem (C#, F#, Java, Scala), bo system przejmuje na siebie prawidłowe zarządzanie cyklem życia obiektów złapanych w kontekście lambdy, to w przypadku Delphi już nie jest tak prosto - w sumie bez dogłębnego zrozumienia co się dzieje pod spodem, i co robi kompilator łatwo wpakować się w tarapaty lub ciekawe przypadki brzegowe:
http://stackoverflow.com/ques[...]ethod-in-project-leaks-memory

I rozumiem, że dla Ciebie to wada, bo Delphi nie ma GC?
Zrozum w końcu, że Delphi to nie jest język zarządzalny i rządzi się zupełnie innymi prawami.
Poza tym, mam rozumieć że w Java czy .NET nie da się napisać złego kodu bez wycieków? ;-)

Bo to co podałeś, to jest właśnie przykład błędnego wykorzystania możliwości języka. I nie wymaga to jakiegoś "dogłębnego zrozumienia", tylko zrozumienia po prostu jak i kiedy jest zwalniana pamięć w Delphi dla typów z ref-countingiem. Napisane w dokumentacji jak wół, tylko trzeba ją jeszcze przeczytać ze zrozumieniem... Fakt, tu może być problem.

Z drugiej strony, zmiany w języku wcale nie były znowu takie rewolucyjne - tu masz listę zmian w jednej z odpowiedzi:
http://stackoverflow.com/ques[...]ch-they-were-introduced-depre

Może dla kogoś, kto pisze w Java lub .NET zmiany nie są rewolucyjne. Ale dla środowiska jest dokładnie odwrotnie, bo w końcu Delphi zaczyna nadążać za nowoczesnymi językami, ale ważniejsze jest to, że dzięki temu pojawiło się mnóstwo bardzo ciekawych bibliotek. A nie było to możliwe, bez wprowadzenia tych mało rewolucyjnych zmian...

Reasumując - Delphi to nie .NET czy Java. I bardzo dobrze. Prawda, że Java czy .NET oferują bogatszy język i znacznie więcej kodu/przykładów/bibliotek community.
Ale to nie oznacza, że Delphi jest złe czy gorsze. Aczkolwiek na siłę można udowodnić wszystko, również to, że Java i .NET jest gorsze od Delphi. Ale to zabawa dla gimbusów i mnie w to nie wciągaj.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0