Czy Delphi dalej żyje?

Wątek zablokowany 2016-08-10 17:52 przez flowCRANE .

drorat1
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Krasnystaw
  • Postów: 1185
0
Zibiiiii napisał(a):

Hobbystycznie można się sobie bawić w różne portable apps, ale gdy piszesz soft dla biura albo dla księgowości to takie fanaberie nikomu nie są potrzebne.

Napiszę tu może w kwestii Lazarusa, bo w tym siedziałem więcej. Bez najmniejszych problemów można pisać tego typu soft i bez potrzeby instalacji .NET Framework. Ma cały szereg komponentów, od standardowych kontrolek, po bardziej ciekawe które się instaluje i komponenty bazodanowe (SQLDB), to jest w standardzie, chociaż można instalować i inne. Dość często spotkałem się w tego typu aplikacjach biurowych z tym że są oparte o Firebird (i tu albo CS albo pewnie rzadziej Embedded, dodam tylko tyle że można się również przełączać między takimi trybami pracy), pewnie też SQLite, XML, nie zdziwiło by mnie również gdyby takie aplikacje były oparte o produkty ze stajni Sybase (Advantage Database Server), kiedyś z tym pracowałem.

Jako że jest dość dużo komponentów, w tym graficznych, które sobie można zainstalować (nie wiem jak w najnowszej wersji Lazarusa ale w tej co mam to trzeba przy czymś takim całego przebudować) można sobie projektować bardzo fajne wyglądem aplikacje tego typu z bardzo fajnymi raportami (LazReport). Ja tu nie widzę żadnego problemu. Może w C# będzie pod tym względem o niebo lepiej bo i mniej klepania jeśli Ci o to chodzi, ze względu na jego dość specyficzną składnię, tylko zastanawiam się czy jest też tak bogaty szereg komponentów, głównie wizualnych. Nie mam tu jednak rozeznania.

  • Rejestracja: dni
  • Ostatnio: dni
0

Czy programowałeś kiedykolwiek w czymś innym niż Delphi? Mam na myśli jakieś współcczesne technologie, jak np WPF i C#. Wydaje mi się, że nie nie, bo gdyby tak było to byś wiedział, że od około 10 lat odchodzi się już od "komponentów" w rozumieniu takim jak w Delphi. W WPF np już nie ma żadnego odpowiednika "komponentów" niewizualnych (w WinForms jeszcze były).

Dlatego właśnie m.in. przejście z Delphi do jakiejś współczesnej technologii z Delphi może być szokiem, bo nie ma komponentu TTimer, TDatabaseConnection - co robić, jak żyć, wszystko inaczej

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
0
Zibiiiii napisał(a):

Dlatego właśnie m.in. przejście z Delphi do jakiejś współczesnej technologii z Delphi może być szokiem, bo nie ma komponentu TTimer, TDatabaseConnection - co robić, jak żyć, wszystko inaczej

No jasne też mi problem gdybyś nie wiedział to w Delphi od zawsze można było tworzyć komponenty dynamicznie także nie ma obawy każdy kto potrafi napisać 2 linijki kodu sobie poradzi z właśnie takim stworzeniem timera w WPF tylko nie rozumiem na czym tu polega udogodnienie? Każdy też potrafi skorzystać z kreatora aby połączyć się z bazą nie wiem w czym problem. W Delphi też można sobie utworzyć połączenie z bazą za pomocą LiveBindings (i do tego kreator). Poza tym nie rozumiem w ogóle dlaczego w Delphi ma się robić coś tak samo a nie inaczej? Kto powiedział że ktoś z Delphi będzie musiał i chciał się przesiadać na C# a jeżeli już to na pewno sobie poradzi nie gorzej od tych którzy kiedyś zaczynali w WPF bo tego nie było "od zawsze". I czym się tu podniecać?
PS: Czegoś takiego jak TDatabaseConnection nie ma w Delphi.

drorat1
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Krasnystaw
  • Postów: 1185
0
Zibiiiii napisał(a):

Czy programowałeś kiedykolwiek w czymś innym niż Delphi? Mam na myśli jakieś współcczesne technologie, jak np WPF i C#. Wydaje mi się, że nie nie, bo gdyby tak było to byś wiedział, że od około 10 lat odchodzi się już od "komponentów" w rozumieniu takim jak w Delphi. W WPF np już nie ma żadnego odpowiednika "komponentów" niewizualnych (w WinForms jeszcze były).

No i co z tego? Programowałem swego czasu w C# (Windows Forms), z WPF nie miałem do czynienia. Nie wyobrażam sobie tworzenia aplikacji desktopowych bez narzędzi RAD, gdzie tylko metodą przeciągnij i upuść dość prosto i szybko (bo masz od razu podgląd a i jeszcze masz np. takie fajne linie naprowadzające) tworzy się formatki zamiast wklepywać to wszystko ręcznie, gdzie musisz jeszcze bawić się z wklepywaniem ich położenia i rozmieszczenia. Ile to jest roboty?

Nie ma komponentów takich jak w DELPHI? To sobie radzisz na sposób który jest właściwy dla tej technologii, tutaj nie widzę problemu. Ja tylko napisałem że tego typu aplikacje ERP można tworzyć w DELPHI czy w Lazarusie bez większych problemów, wspomagając się przy tym RAD, klienci końcowi się przecież nie znają a jeżeli standardowy wygląd kontrolek Windows im pasuje to gdzie tu jest problem? Jedyne co mi nie pasuje w tym FPC vs. C# to to że na bank będzie więcej klepania tego kodu.

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

Panowie już dawno odeszliśmy od sedna tematu. Teraz schodzimy na to, czy Delphi jest lepsze, czy gorsze od C#. Powtarzam, Delphi żyje, co jest odpowiedzią do tematu.

WL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1084
0
Juhas napisał(a):
wloochacz napisał(a):

Naprawdę? Ile Ty masz lat, że wierzysz we wszystko co na konferencjach mówi producent? A co ma powiedzieć, że nie działa?
Dam przykład (kto był w tym roku w Rawie Mazowieckiej, ten może pamięta); Moskwa opowiadał o FMX, w pewnym momencie wspominał o klasie TLocation (tak to się chyba nazywa, chodzi o obsługę GPSa w urządzeniach) i mówi, że to generalnie nie zawsze działa. Na dodatek potrafi zawiesić urządzenie. Mina przedstawicieli producenta - bezcenna, zwłaszcza jak głosy na sali potwierdzają - "tak ja też spotkałem się z tym problemem"....

OK, pokazywali na FMX i działało normalnie. Tyle, że to były dość proste rzeczy.

Własnie, proste. Jak prototyp. Tylko ma to służyć nie tylko do prototypowania...

Nie wierzysz, to proszę tutorial:
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Programatically_Binding_Created_Objects
I pierwsze zdanie:
"Caution: The programmatic method described here is NOT the standard way to implement binding expressions."

No nie jest to miłe, ale nie jest też wyjątkiem. Przykładu nie trzeba szukać daleko. MFC i ręczna edycja plików RC. Da się? Jasne. Ale jak potem zrobisz coś w designerze (chociażby przesunięcie kontrolki o 1 piksel), to Ci rozwali wszystkie Twoje zmiany i tak naprawdę nie wiadomo, co zostanie.

OK, ale tego nie da się porównywać. To zdecydowanie nie ten ciężar gatunkowy, bo dlaczego niby biblioteka realizująca binding ma być używana tylko przez klikane wizualne edytory?

Pewnie, można powiedzieć - przecież to nic i czepiam się. Można. Tylko dla mnie programowanie to nie zabawa, tylko podstawa egzystencji.

Myślę, że jak dla większości ludzi tutaj :)

A więc jak mi producent pisze, że to da się ale de-facto jest to hack, to ja się zaczynam poważnie zastanawiać, od której wersji się nie da.
Bo tak, przecież ostrzegali...

Tak, jak mówię. To nie jest kwestia jedynie Delphi. Takie rzeczy ("da się, ale nie jest to zalecane w taki sposób") są w wielu językach. Pisałem wyżej o C++ i MFC, są też podobne cuda w C#.

Ale to są rzeczy ciągnięte, jak sam zauważyłeś, od wielu lat. I teraz byłoby lekkim strzałem w kolano np. usunięcie funkcji format. Chociaż mogliby utworzyć np. klasę String.

Mówiłeś, że w której wersji piszesz? Ostatnio na XE5, dobrze pamiętam?
Musze Cię zmartwić, nie znasz narzędzia którego używasz, ponieważ jest to od wersji XE3.

Co jest od wersji XE3? Format w postaci metody? Możliwe, że nie znam XE5, bo ostatnio pisałem w Delphi jakieś 2, 3 lata temu i to dość krótko w XE5 :)

Class Helper dla typów prostych. Mam nadzieję, że wiesz co to jest class helper (w Delphi od wersji 2006)?

I nie, nie jest tak że String jest klasą (to by był dopiero hardcore - tworzyć i zwalniać każdego stringa :D), ale jest tak, że dla typów prostych można utworzyć class helper.

No zgoda, ale nigdzie nie pisałem, że string jest klasą.

Nigdzie nie napisałem, że tak napisałeś.

Niemniej jednak do takiego miana pretenduje przynajmniej od wersji XE2, gdzie stringi zaczęły być (możliwe, że wcześniej) bardziej skomplikowaną strukturą w pamięci niż do tej pory. Doszło kodowanie, reference counting i kilka innych rzeczy.

Sprostowanie; RefCounting dla stringów (i nie tylko dla nich) jest w Delphi od zawsze. Kodowanie jest od bardzo dawna, tylko intysywnie wykorzystywane od wersji 2009. Ale wczesniej tez było obsługiwane.
Inne rzeczy są widoczne dla stringa, ale to nie jest nierozerwalna część stringa, zrobione jest to nieco inaczej. Właśnie przez class helper dla typów prostych.

BTW - wiedziałeś, że od wersji XE3 w Delphi jest zero-based-string? Domyślnie OFF :D

Nie wiedziałem, ale gdyby to było włączone domyślnie, to dopiero apki by się zaczęły sypać :)

Poza tym porządny wsparcie dla porządnego namespace bardzo by pomógł, a nie takie nie wiadomo co to jest, co jest.
Prawda jest taka, że rozwój samego języka i RTLa napędza FMX, ponieważ kod wieloplatformowy to naprawdę poważny problem do rozwiązania.
No i pchają tego FMX na siłę... Zastanawiam się tylko kiedy to zdechnie na amen :D

Tu mamy podobne podejście :)

Po prostu dostarczenie do obiektu poprawnych danych. Co do przeliczania w DataSet. Jeśli to jest mało skomplikowane (załóżmy dosłownie kilka warunków), to można to zrobić bezpośrednio w zdarzeniu. Natomiast, jeśli jest coś bardziej skomplikowanego, to nikt Ci nie broni napisać sobie odpowiednich klas do tego z całą hierarchią dziedziczenia i w ogóle. Wszystko może sprowadzić się do wywołania w zdarzeniu jednej metody, obiektu który to wszystko ogarnie.

I to jest właśnie Delphiowe podejście... raz tak, a raz siak. To jest drogi Kolego bardzo zły nawyk.

I tak, i nie. To zależy głównie od sytuacji. Jeśli masz do zwalidowania jedną zmienną, to nie będziesz tworzył do tego jakiegoś jebitnego mechanizmu, bo nie ma to sensu. Więcej czasu stracisz na tym, niż co warte. Ale, gdy takich rzeczy zaczyna dochodzić, wtedy trzeba przemyśleć lekkie przeprojektowanie. Ale to nie jest kwestia języka, tylko indywidualnego podejścia do projektu, jego wymagań, założeń itd. Przecież w C# też możesz takie rzeczy robić w zdarzeniu na formie. Nikt Ci tego nie broni.

Jasne, to nie jest problem Delphi tylko programowania w ogóle - jak coś robić, a jak nie i dlaczego nie.

No też właśnie :)

Kopiuj
 try
   conn.BeginTransaction;
   if dsMaster.State in dsEditStates then
     dsMaster.Post;
   if dsDetail.State in dsEditStates then
     dsDetail.Post;
   conn.Commit;
 except
   conn.Rollback;
   raise;
 end;

I powtarzamy taką wyliczankę na każdym okienku liczonym w setkach.
Wypas :)

No tu jest już kwestia programisty i architektury systemu. To nie jest kwestia języka.

No to pytam, jak to robisz jako programista?
Bo Delphi nie daje żadnego wzorca, wsparcia, techniki, whatever na pokładzie do tego. A szkoda.

Wyobraź sobie, że masz główny obiekt w Twoim systemie i zaistniała potrzeba dodawania nowego atrybutu (niech będzie, że to pole w tabeli).
Banał prawda? Prawda.
A teraz ten obiekt jest wykorzystywany na 20 albo i 100 formatkach i na każdej z nich ma być dodane to nowe pole + dodatkowa logika zależna od wartości tego pola, która ingeruje w logikę na innych formatkach.
No to mamy bagno...
Zrobienie tego jest proste, ale cholernie żmudne i na pewno urodzą się nowe błędy.

Tak, dlatego możesz dziedziczyć formularze przecież.

Mogę. A potem muszę cierpieć przez to dziedziczenie, kiedy trzeba podejść do tego elastycznie.
OK, to nie wina Delphi ;-) Chodzi mi o to, że to wcale nie jest takie dobre rozwiązanie jak się wydaje. Słabości tej techniki wychodzą przy dużych projektach z dużą dynamiką "customizacji" i małym zespołem.

Poza tym nie musisz tego robić na każdej formie. Możesz mieć frame, możesz mieć dodatkową formę, którą kładziesz na panelu na innej formie. I tak naprawdę robisz to TYLKO w jednym miejscu.

Problem zaczyna się wtedy, kiedy ten frame działa ciut inaczej od kontekstu. Poza tym ramki?
Nie cierpię ramek (przecież to nawet nie ma zdarzenia OnCreate) kolejne narzędzie dla klepacza :D, zdecydowanie lepszym rozwiązaniem są dokowane okna na kontenerze. A kontenerem może być cokolwiek (okno, panel, PageControl (który z automatu tworzy zakładkę dla dokowanego obiektu)), itd.

A nie lepiej by było dodać ten atrybutu do modelu danych + dopisać te kilka linii kodu do logiki i koniec?
Reszta, włącznie z rozbudową wszystkich formatek, robi się sama.

No i właśnie tak można zrobić, robiąc jak napisałem powyżej.

Tak jak napisałeś powyżej to jest żadne rozwiązanie. To jest kolejny drut, do zrobienia na szybko by działało.
Wydaje się wygodne i fajne, do momentu jak trzeba to utrzymywać przy skomplikowanej customizacji...

Raczej typowe. Natomiast ja jestem absolutnie przeciwny takiemu postępowaniu.
Wolę kod, ponieważ wszystko widzę w jednym miejscu. Zmieniam w jednym miejscu i działa.
Tak jest prościej i bezpieczniej.
Ale nie zawsze tak robiłem, kiedyś tez uważałem to za swego rodzaju fanaberię; do czasu...

Ale nikt Ci tego nie broni. Możesz poustawiać w kodzie WSZYSTKIE właściwości. Tylko po co? Nie ma to sensu.

Nie, nie jest to bez sensu - to zdecydowanie ma sens.
Po to wymyślono konwencje, aby nie trzeba było się za każdym razem zastanawiać jak to działa, tylko używać poprawnie i zgodnie z konwencją.

Naprawdę chciałbym je zobaczyć, jakiego miałbyś pomysła na rozwiązanie pewnych kwestii. To byłoby szalenie ciekawe :)

Z dodaniem nowego pola już Ci napisałem wyżej. Podejrzewam, że z każdym Twoim problemem (a przynajmniej z większością) można się uporać. Natomiast widzę, że problemy o których piszesz nie dotyczą w ogóle problemów środowiska (poza rzeczami w stylu: "ręcznie lepiej tego nie robić", bo z tym nie ma co dyskutować), tylko problemów z architekturą systemu, który tworzysz.

Problem polega na tym, że ja nie mam problemów z architekturą, tylko z Delphi które mnie ogranicza. Z ograniczeniami da się żyć, to normalka. Ale z krytycznymi błędami tam gdzie powinno to działać, to już nie.
A co jak robię to możesz poczytać sobie w tym wątku, jak masz ochotę:
http://4programmers.net/Forum/1253574

  • Rejestracja: dni
  • Ostatnio: dni
0

Największe wtf Lazarusa - trzeba przekompilować całe ide żeby nowo doinstalowane komponenty pojawiły się na palecie. Ten, kto to wymyślił chyba coś ćpał? Przecież nawet w Delphi tak nie było

drorat1
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Krasnystaw
  • Postów: 1185
0
Zibiiiii napisał(a):

Największe wtf Lazarusa - trzeba przekompilować całe ide żeby nowo doinstalowane komponenty pojawiły się na palecie. Ten, kto to wymyślił chyba coś ćpał? Przecież nawet w Delphi tak nie było

Ale nie trzeba tego robić za każdym razem kiedy chcesz zainstalować kolejny pakiet. Po prostu zapyta Cię czy dodać pakiet do listy do instalacji, dodajesz kolejne które chcesz a potem robisz tą kompilację dopiero przy ostatnim. Poza tym przy dzisiejszym sprzęcie całe to przebudowanie IDE dzieje się szybko.

LG
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie no błagam. Konkluzja jest taka, że Delphi jeszcze dyszy i nawet zaczyna jakaś szarżę może przedśmiertną, ale żyje. Z tematu, czy technologia jest w ogóle w użytku zaczęło się psioczenie na Delphi, potem, że C# lepsze, a teraz jakieś podjazdy z Lazarusem, co zupełnie odbiega od tematu. Proponuję temat zamknąć, bo się wyczerpał, a autor coś czuje, ze już się C# uczy ;)

  • Rejestracja: dni
  • Ostatnio: dni
0

@kAzek ma rację. Znów na biednych programistów Delphi rzuciła się sfora wilków. Kąsają, ujadają, robią podjazdy. Lecz wy się nie dacie - furious_programming zaraz wszystko wyczyści, nie zostanie nawet ślad po tych niecnych atakach na Delphi.

A w kolejnej wersji serwisu będą już mieli dostęp tylko swojaki. Więc nikt już nie będzie zakładać wątków mających na celu haniebne ataki ba Delphi, a będą powstawały tylko wątki pochwalne.

  • Rejestracja: dni
  • Ostatnio: dni
0

Niektórym najwidoczniej przeszkadza, że jest sporo osób które chętnie korzystają z Delphi (znając inne języki) i mają jakiś dziwny wewnętrzny cel żeby narzekać na to złe Delphi. Jednak poza samą krytyką nie widać czemu by to miało służyć, więc to po prostu trollowanie. :)

  • Rejestracja: dni
  • Ostatnio: dni
0

Przypominam sobie wątek który tu był, gdzie większość opowiedziała się w ankiecie za likwidacją działu Delphi.

Jak się to potoczyło dalej, możecie się domyślić. Wątek bardzo szybko wyparował, bo moderator Delphi i jeszcze tych 3 fanów tej technologii zapienili się że ktoś ośmielił się nie pochwalić Delphi

  • Rejestracja: dni
  • Ostatnio: dni
0

Jeśli kogoś razi ta kategoria, to przecież wystarczy ją ukryć w ustawieniach personalizacji. Równie dobrze można zebrać grono osób które będą się domagały usunięcia kategorii c# i każdego innego działu. Po to jest funkcja ukrywania...

  • Rejestracja: dni
  • Ostatnio: dni
0

No akurat ankieta wykazała odwrotnie- że większość użytkowników będzie broniła tego działu jak Tibii krzesłem.

WL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1084
0
Zibiiiii napisał(a):

Przypominam sobie wątek który tu był, gdzie większość opowiedziała się w ankiecie za likwidacją działu Delphi.

Dlaczego miałby być zlikwidowany?
Dla mnie mógłby być jeszcze COBOL i FORTRAN, na zdrowie.

Jak się to potoczyło dalej, możecie się domyślić. Wątek bardzo szybko wyparował, bo moderator Delphi i jeszcze tych 3 fanów tej technologii zapienili się że ktoś ośmielił się nie pochwalić Delphi

Pitolisz trzy po trzy. Zawsze tak, czy tylko czasem?
Co ci przeszkadza forum? I jaka zdecydowana większość? Większość tych, którzy nie znają tej technologii i jej nie używają, tak?

A poza ty, co ja będę dyskutował z anonimem jednym czy drugim...

LG
  • Rejestracja: dni
  • Ostatnio: dni
0

Moim zdaniem wolnoć Tomku we własnym domu. Zarówno jeśli chodzi o klepanie czy to hobbystycznie czy komercyjnie w Delphi, czy prowadzenie forum z działem Delphi. Takie teksty to moim zdaniem przejaw skrajnego trollingu. Zresztą jakby to co piszą było prawdą to tematu już by nie było. To jest forum entuzjastów programowania, więc sądzę, że każdy dział ma sens, a ludzie co trolują, chyba na prawdę się nudzą. Zauważmy, że nikt kto takie głupoty pisze nie pisze tego z konta, więc albo to troll na anonimie, albo ktoś tak nienawidzi czegoś odmiennego, że mimo, że normalnie nie pisze i nie ma konta, to jednak na anonimie trolluje. Kurczę - Delphi, żyje, każdy już o tym wie - temat do zamknięcia. Niemniej @wloochacz - Twoje marudzenie (czasami troszkę na wyrost, bo dużo argumentów zależy chyba od specyfiki Twojej pracy) przydało się, bo wychwyciłem fajne narzędzia co przydadzą się mi w pracy (EurekaLog, madExcept)

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Widać właśnie czemu ten watek miał służyć - trolowaniu, a jakże; Zaczęło się od tego czy Delphi żyje, pojawiło się sporo merytorycznych wypowiedzi użytkowników (oczywiście zarejestrowanych) z plusami i minusami; Temat nie spasował (nie dało się potwierdzić wyssanych z palca teorii), zmieniono kierunek dyskusji na porównywanie Delphi do innych technologii; To też widać nie spasowało, więc kolejny raz zmiana tematu - tym razem na strukturę forum i nic nie warte ankiety;

Tak jak przypuszczałem - jest to kolejny wątek, który od samego początku nie miał dotyczyć merytorycznej dyskusji, a zwykłego hejtowania i trolowania, czego dowodem są głównie (a jakże) posty anonimów;

Co do samej ankiety - to była parodia, a nie ankieta, która została ztrolowana od samego początku; Nie ma najmniejszych podstaw do tego, aby usunąć jakąkolwiek kategorię tego forum, inną niż **http://4programmers.net/Forum/Flame**; Zresztą ta ankieta była jedynie ripostą na moje (i nie tylko moje) wypowiedzi w dyskusji na temat usunięcia na stałe kategorii http://4programmers.net/Forum/Flame (i tak też się stanie) ; Dział http://4programmers.net/Forum/Delphi_Pascal jest jednym z najstarszych kategorii forum i ma najwięcej wątkow; Nie ma mowy o tym, aby ta kategoria została choćby tknięta; Takie ankiety możesz sobie co najwyżej przeprowadzać na osiedlu, bo tu twoje zdanie nie jest nic warte - tylko się ośmieszasz i marnujesz czas (również jeśli chodzi o wypowiedzi na temat Delphi); Zarządzanie serwisem zostaw ludziom odpowiedzialnym i myślącym o wszystkich użytkownikach, a nie tylko o sobie;

Wątek blokuję, bo już dawno temu został ztrolowany i nie ma sensu dalej karmić trola/troli.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.