Wątek przeniesiony 2021-09-29 21:49 z Off-Topic przez cerrato.

C#/.net vs Delphi/Pascal/Lazarus

0

Jest wątek C# vs Java, więc pomyślałem że zadam analogiczne pytanie. C# i .net vs Delphi/Object Pascal/Lazarus.

Więc: który z tych dwóch, którego byście wybrali, do czego, w czym jeden jest lepszy od drugiego i dlaczego. Nie kładę tu nacisku na Delphi konkretnie, Delphi, Lazarus vs C# i .net.

Nie zakładam tematu we Flame, bo liczę na rzeczowe argumenty i merytoryczną dyskusję. Zwłaszcza interesują mnie powody dlaczego ktoś wybiera Delphi/Lazarusa bo jest to ewidentnie technologia mniej popularna,ale być może technicznie/projektowo ma jakieś przewagi?

8

Za Lazarusem:

  • łatwe tworzenie na wiele platform. Raczej C# w aplikacjach (w szczególności desktopowych) na Linuksa to rzadkość
  • Środowisko typu RAD, więc w przypadku wielu (zwłaszcza prostszych) zadań jest to wygodne, odpada duża część walki z UI
  • o wiele większa szybkość kompilacji w porównaniu z Java/C
  • plik wynikowy ma dosłownie kilka MB. Aczkolwiek to mało istotny argument w obecnych czasach
  • możesz odpalić na dowolnym Windowsie, z XP i 2000 włącznie
  • nie potrzeba żadnych dodatkowych rzeczy - typu C Runtime, JRE albo dotnet w wersji którejś-tam
  • całkowicie darmowe środowisko, można legalnie tworzyć rzeczy komercyjne
  • (subiektywne) fajny język. Pilnuje typów, pilnuje wyjścia poza zakres tablicy, nie ma (dla mnie idiotycznego) rozbicia na pliki nagłówkowe oraz z kodem, ma specjalny znak przypisania więc nie strzelisz gafy przypadkowo przypisując zamiast porównać (albo odwrotnie)

Przeciw (ogólnie - Pascalom i Delphi)

  • przede wszystkim - są niemodne, trochę wstyd się przyznać że się tego używa
  • o wiele mniejsze wsparcie społeczności niż w językach mainstreamowych
  • mało ofert pracy, więc mało chętnych. A że mało osób w tym pisze zawodowo, to mało projektów powstaje, więc mało ofert pracy. I koło się zamyka
  • dziwaczna polityka producenta Delphi, zawirowania z licencjami, dość wysokie ceny
  • wiele rzeczy musi zostać portowane na Pascala - niby pod Windowsem można korzystać z dowolnych DLL, ale nie mając przetłumaczonych importów to za wiele nie zrobisz
  • brakuje pewnych rzeczy, które są w innych językach. Aczkolwiek są one systematycznie wprowadzane i podejrzewam, że większość z tematów, które ktoś może teraz podać jako argument zostało już wdrożonych (deklarowanie zmiennych poza początkiem funkcji, generyki itp.)

Tak czy siak - to co napisałem powyżej to jest w miarę sensowna lista. Wiadomo - z częścią rzeczy można się nie zgadzać, ktoś może dodać jakieś inne rzeczy. Ale ważne jest to, żeby nie słuchać hejterów, którzy o Delphi i pokrewnych nie wiedzą praktycznie nic, ich ostatni kontakt (jeśli w ogóle) z tą technologią miał miejsce gdzieś między Delphi 2 a D7. Tak samo jak w przypadku PHP - język cały czas się rozwija i ewoluuje, ale hejterzy powtarzają jakieś slogany z tyłka, które ewentualnie mogły być aktualne 15 lat temu.

6

No to tak:

  • Jak programujesz w C# to masz szanse że @somekind spyta się Ciebie czym się różni klasa abstrakcyjna od interface
  • C# pochodzi od Javy jak świnia od dzika
  • jak w wieku 30 lat pojedziesz na konferencję dla programistów C# i .NET to prawdopodobnie nie będziesz najmłodszy

A tak w pełni na poważnie:

  • C# ma dużo lukru składniowego
  • C# ma lambdy i LINQ.
  • C# ma cywilizowaną wielowątkowość (AFAIK)
  • C# ma kontenery IoC
  • C# ma IDE od Jetbrains
  • C# ma frameworki webowe które również chodza na Linuxie
  • w C# masz szansę na napisanie aplikacji biznesowej z której korzysta w chj dużo ludzi (patrz punkt wyżej)
  • C# to więcej hajsu pewnie
2

Pascal w gamedevie obecnie praktycznie nie istnieje. Więc do projektów gier na pewno nie wybiorę żadnego IDE opartego o ten język.

Ale kiedyś w Delphi powstała naprawdę zacna gra, która zapadła mi w pamięci:
screenshot-20210930005014.png
Można było nawet narysować własny statek w MS Paint i odpowiednim kolorem piksela zaznaczyć gdzie ma silniki i działka :]

W Delphi powstał też słynny Soldat.

Poza gamedevem... Jak studiowałem to wybrałem Lazarusa do realizacji aplikacji dla chętnych (podstawy statystyki), bo Lazarus miał komponent do rysowania wykresów i moja przeszłość z Delphi (i książkami Adama :) ) pozwoliła mi szybko postawić apkę.

3
cerrato napisał(a):
  • wiele rzeczy musi zostać portowane na Pascala - niby pod Windowsem można korzystać z dowolnych DLL, ale nie mając przetłumaczonych importów to za wiele nie zrobisz

To jest "przeciw" Delphi, ale to nie jest "za" C#, bo w C# masz taką samą sytuację (w przypadku DLL-ek natywnych), a nawet gorszą, bo w C# wychodzimy tu zdecydowanie ze strefy komfortu, trzeba nieźle główkować jak zadeklarować parametr który jest dajmy na to strukturą zawierającą tablicę stringów, potem obudować cały ten syf w dotnetową klasę bo inaczej nie da się z tego normalnie korzystać...
...a w Delphi masz mniej-więcej przełożenie 1:1 względem typów z C.

2

Firma wybrała Delphi bo łatwo było wyklikać program bazodanowy z ładnymi tabelkami, wcześniej podobno używali Gupta SQL. Tak jak napisał @Azarien przełożenie typów i ogólni API windowsowego było dobre i ogólnie pisało się fajnie i szybko, szkoda tylko że nie udało mi się przeforsować C++Buildera.
W korpo za to był używany c# ponieważ całość narzędzi microsoftu kupili.....i też jakoś nie chcieli użyć C++. Kod jaki tam widziałam był....specyficzny. Starsze programy pisane w VB wyglądały podobnie. Właśnie doszłam do wniosku że na aplikacje w obu językach przede wszystkim wpływ mają życzenia odnośnie wyglądu, a to co jest pod spodem często jest olewane i pisane niechlujnie. W Delphi da się pisać programy ze skomplikowaną logiką, wiem bo widziałam. W c# być może też....ale właśnie to co napisałam o niedeterministycznym niszczeniu obiektów jest pewną przeszkodą. Ale jeżeli chodzi o aplikacje a okienkami do klikania to cena kompilatora chyba bardziej wpływa na wybór ;)

3

O Delphi się nie będę wypowiadał bo rynek pracy wskazuje że jest to po prostu taki dużo mniejszy COBOL (technologia nieumarła).

Jeśli chodzi o Free Pascala / Lazarusa to z tego co się orientuję:

Za:

  • łatwość tworzenia w miarę ładnego GUI
  • szybkość kompilacji
  • małe pliki wykonywalne
  • możliwość oskryptowania
  • interfejsy do baz danych
  • wieloplatformowość

Przeciw:

  • mała baza użytkowników i producentów oprogramowania
  • język mało używany w domenach innych niż GUI, więc jeśli chcesz robić ML, GameDev czy cokolwiek poza okienkami to masz problem z użyciem bibliotek
  • prawdopodobnie też (tu już tylko wymyślam bo nie testowałem) język ten nie ma tylu optymalizacji co obecne C/C++ i Rust więc będzie coraz bardziej zostawał w tyle z wydajnością, wg Benchmarks Game może konkurować z plain vanilla Javą

Z aplikacji zrobionych we Free Pascalu na rynku obecnie występuje np. Double Commander.
Jakbym był na studiach to pewnie bym go używał ze względu na możliwość zapakowania ze wszystkimi dependencjami do jednego zgrabnego zipa (a może nawet i EXEka).

3

Nowe Delphi właściwie nie ma wad względem C# poza jedną... nie jest już tak popularne.
Zalety... Banalne pisanie aplikacji x-platform na Android, IOS, Win. Sam korzystam. Od wersji 10.2 komponenty FMX działają bardzo sensownie.
Chyba w niczym innym tak szybko nie "wyklikamy" prostej aplikacji typu front end do sklepu online czy innej "cieńkiej kocówki" dla odbiorcy końcowego.

Całych systemów raczej bym w tym nie zaczynał pisać bo wsparcie w sieci małe jednak aplikacje mobilne i mniej rozbudowane końcówki klienckie zdecydowanie tak.
Podobnie z prostymi aplikacjami WEB - przy dzisiejszej cenie VPS z Windows, takie "szybkie strzały" aż prosi się w tym robić zamiast walczyć z jakimiś Javascriptami, Ractami na front-endzie + PHP czy Javami na back-endzie... W tym obszarze jednak nie jest to konkurencyjne do C# a jedynie porównywalne.

No i wciąż jest jednym narzędziem z tylko dwóch sensownych środowisk umożliwiających komfortowe tworzenie aplikacji RAD zarówno desktop (x-platform) jak i WEB.
Niby jeszcze mamy JAVA i swing, który przez "młodyh wilkuf" jest podobnie niesłusznie wyśmiewany jak Delphi.

3

@katakrowa: Ale w Kotlinie też możesz pisać aplikacje na Androida i IoS. Masz tam jeszcze oprócz tego coroutines i dużo mniej boilerplate kodu, np. lambdy, data classy, ingerencję typów.

1

@scibi_92: ale nie masz środowiska RAD i musisz się męczyć z interfejsem.

2

@katakrowa: Java oprócz swinga ma jeszcze JavaFX, ale mocno bym się zastanawiał nad lepszością jednego nad drugim. Uważam, że do desktopowej aplikacji Delphi jest o wiele lepsze niż to co jest w stanie zaoferować Java, tylko mając do ogarnięcia komercyjny projekt w życiu bym nie wybrał Delphi z bardzo prozaicznego powodu. Po ogłoszeniu takiej decyzji zespół mógłby ponieść ciężkie straty w wyścigu do kadr, żeby złożyć wypowiedzenia, a skompletowanie nowego byłoby niemożliwe. Pozostają jeszcze kwestie techniczne, trochę zakładam, że do takiego Delphi jest ułamek wsparcia społeczności, zarówno na np. Stack Overflow, jak i pod postacią dostępnych bibliotek i jak przyjdzie co do czego, to trzeba się bawić w wymyślanie koła na nowo. O tym, że mogę pewnie zapomnieć o takich drobiazgach jak Sonarqube, skanowanie CWE i wrzucenie tego wszystkiego na gotową pajplajnę też warto wspomnieć.
Pewnie wybrałbym C# jako małżeństwo z rozsądku. Z mojego punktu widzenia generalnie jest problem z narzędziami do desktop (ale też mam skromną wiedzę na ten temat), bo to co widzę na rynku to jakieś dziwaczne twory odpalające się na Chrome, gdzie jako wielką zaletę wymienia się, że trzeba znać jedynie HTML+CSS+JS i trochę mnie bierze jak widzę jakąś taką popierdułkę typu slack, zżerającą gigabajt ram, powodującą spore obciążenie CPU gdzie na umieszczenie przycisku w pożądanym miejscu trzeba było pół sprintu.

0

Co do podejścia RAD, to z tego co słyszę ciągle - jest już niemodne i ma więcej minusów niż plusów. Przecież takie samo podejście było w Winforms, a w nowszym WPF się z tego wycofano, świadomie - aby łatwiej można było dzielić kod na warstwy, tzn oddzielić warstwę prezentacji od logiki chociażby. Dziś już uznaje się ten sposób za przestarzały i uznaje się, że to podejście się nie sprawdziło totalnie. Analogicznie na web - był potworek WebForms

@katakrowa aplikacje mobilne w Delphi są jeszcze rzadsze, niż na desktopie, to jak yeti - nikt nie widział chyba. Twierdzisz, że to dobrze działa? Jak w porównaniu do Fluttera, czy React Native? Nie chodzi o to, jak szybko wyklikasz okno z przyciskiem, tylko o wsparcie, stabilność i wydajność oraz wygląd otrzymanej aplikacji. Bo jeśli to wygląda jak w Androidzie sprzed 10 lat, to słabo

1

@Ghost_: Co do podejścia RAD, to z tego co słyszę ciągle - jest już niemodne i ma więcej minusów niż plusów.
Z tego co ciągle słyszę to PIS i PO są najlepszymi partiami dla Polski.

przecież takie samo podejście było w Winforms - chyba zupełnie nie wiesz co to RAD.

aby łatwiej można było dzielić kod na warstwy, tzn oddzielić warstwę prezentacji od logiki chociażby nic nie stoi na przeszkodzie aby tak robić także w Delphi.
Różnica polega na tym, że w pisząc w takim JAVA + React musisz to zrobić a w Delphi jak projekt tego nie wymaga to nie musisz. Czyli w Delphi możliwości masz więcej.
Zresztą analogicznie jak w C#.

Twierdzisz, że to dobrze działa? - tak.
Jak w porównaniu do Fluttera, czy React Native? - w porównaniu czego. Wydajnością stawiam, że lepsze Delphi.

Nie chodzi o to, jak szybko wyklikasz okno z przyciskiem, tylko o wsparcie, stabilność i wydajność oraz wygląd otrzymanej aplikacji. - jak zroisz brzydko i niestabilnie w flutterze to też Cię nic nie uratuje. A poważnie to wg mnie porównywalne, a samo środowisko Delphi 100 razy lepsze.

Bo jeśli to wygląda jak w Androidzie sprzed 10 lat, to słabo - wygląd to kwestia projektu graficznego aplikacji, a nie środowiska w którym ją robisz. Tu masz style: https://www.embarcadero.com/products/rad-studio/fireui/premium-styles#gallery-native

Najłatwiej sprawdzić samemu o można pobrać darmowego triala czy nawet wersję community: https://www.embarcadero.com/products/delphi

2

@katakrowa: Jednak niegdysiejsze podejście delphi i wrzucanie niewizualnych kontrolek VCL na formatki trochę temu sprzyjało. Dodatkowo część wartości nadawana w jednym miejscu, część w drugim trochę zmniejszała czytelność. Możliwe, że da się lepiej, ale takie podejście było nagminne. Borland miał tez podobny pomysł na Javę w postaci JBuildera, ale dość szybko się z niego wycofał, bo było to z twarzy podobne do niczego. Dodatkowo, spore znaczenie dla popularności tych środowisk miała cena. W Javie i C# mogę używać bardzo dobrych IDE za darmo (w C# od niedawna), mogę kupić licencję np. na IntelliJ ultimate jeżeli jej potrzebuję, ale dokładnie to samo mogę zrobić w darmowych środowiskach typu Eclipse, czy NetBeans

Różnica polega na tym, że w pisząc w takim JAVA + React musisz to zrobić

Uwierz, da się pisać w Java bez podziału na warstwy, moduły, czy nawet klasy.

Multiplatformowe języki do tworzenia aplikacji zrobiły się ostatnio popularne, ale jeszcze parę lat temu były mocno niedojrzałe. W tej chwili pewnie jest inaczej, ale wyszedłem z aplikacji mobilnych kilka lat temu. Swoją drogą muszę sprawdzić Fluttera pod kątem możliwości interakcji z systemem operacyjnym - jakies global hooki na klawisze, coś odczytać, coś zapisać do rejestru, eskalować uprawnienia itd.

Stabilność aplikacji na Androida (jak sądzę do tego pił @Ghost_ ) to kwestia pojawienia się nowej platformy i błędów w niej, a z drugiej strony musi minąć trochę czasu i zmian, żeby programiści nauczyli się jak stworzyć coś co naprawdę działa, zamiast "u mnie działa".

1

@piotrpo: zgadzam się właściwie z wszystkim co piszesz.
Jednie chcę przedstawić swój punk widzenia na Delphi, które biznesowo też traktuję jako platformę znikającą z rynku jednak za główne tego przyczyny obstawiam nie to, że jest przestarzałe, nie da się w tym pisać albo czegoś nie może... bo jak już wcześniej wspomniałem nie odbiega od C# prawie w ogóle.

Moim zdaniem przyczyną jest drastycznie mała popularność i słabe wsparcie społeczności. Przez 20 lat Microsoft ostro cisnął z marketingiem swoich rozwiązań dawał darmowe wersje dla studentów, uczelni, a nawet szkolenia które można było zakończyć z fajnym certyfikatem. W tym czasie Delphi "cipiło" niemal wszystkiego za najbardziej "bidną" wersję z dostępem do bazy chcieli już kasę - dawali takie Delphi Personal ale bez komponentów bazodanowych i nie było możliwości komercyjnego użycia. Sam na takiej wersji ale kupionej chyba z PCKurier za 600zł zaczynałem pisać pierwsze programy, które sprzedawałem.
Potem mieli prawie 15 lat przerwy w rozwoju gdy Delphi było pod skrzydłami CodeGear i zanim Embarcadero ogarnęło burdel, który został. W tym czasie wysypały się prawie wszystkie firmy co robiły fajne komponenty i faktycznie rozwijały ten produkt... Do tego wypuścili jeszcze po drodze niedokończone buble takie jak Kylix czy Delphi4PHP ( o zgrozo kiedyś to odpaliłem i próbowałem coś w tym zrobić ).
Niestety Ci co w tym nieszczęśliwym czasie się z Delphi zetknęli mogli nabrać jedynie złych doświadczeń i zrazić się do całej platformy. Język stracił na popularności, nikt już nie chce pisać begin/end zamiast {/}. Niby jeszcze jest C++ Builder ale ciąży na nim to samo brzemię z przeszłości.

Subiektywnie oceniając Delphi już nigdy nie zdobędzie takiej popularności jak miało ale może się ustawić jeszcze na długie lata na jakimś 1%-2,5% popularności gdzieś obok GO, Rust, Assemlera i tak sobie trwać z tymi kilkoma milionami użytkowników wiele lat. Raczej jeszcze szybko "nie zdechnie".

0

@katakrowa: ale porównywałeś wydajność np Fluttera i Delphi na Androidzie? Bo jeśli tylko tak stawiasz, a nie wiesz to niewiele warta jest ta odpowiedź. Ja stawiam, że może być co najwyżej porównywalna, a stabilność gorsza, nawet na podstawie tematów na tym forum.

2
katakrowa napisał(a):

Jednie chcę przedstawić swój punk widzenia na Delphi, które biznesowo też traktuję jako platformę znikającą z rynku jednak za główne tego przyczyny obstawiam nie to, że jest przestarzałe, nie da się w tym pisać albo czegoś nie może... bo jak już wcześniej wspomniałem nie odbiega od C# prawie w ogóle.

No trochę odjechałeś, albo Delphi zmieniło się tak bardzo, że niczym już nie przypomina D7, na którym zakończyłem karierę. Zakładając, że nadal kompiluje się do postaci PE (pod Windows), ma jednoprzebiegowy kompilator, nadal korzysta z ekstra udziwnionej konfiguracji nie wizualnych VCL. Przyznam się, że nie wiem.

Moim zdaniem przyczyną jest drastycznie mała popularność i słabe wsparcie społeczności.

Ale ten spadek popularności skądś się bierze...

Przez 20 lat Microsoft ostro cisnął z marketingiem swoich rozwiązań dawał darmowe wersje dla studentów, uczelni, a nawet szkolenia które można było zakończyć z fajnym certyfikatem. W tym czasie Delphi "cipiło" niemal wszystkiego za najbardziej "bidną" wersję z dostępem do bazy chcieli już kasę - dawali takie Delphi Personal ale bez komponentów bazodanowych i nie było możliwości komercyjnego użycia. Sam na takiej wersji ale kupionej chyba z PCKurier za 600zł zaczynałem pisać pierwsze programy, które sprzedawałem.

Podobnie jak ja, ponownie swoją przygodę z programowaniem wystartowałem z bodajże D1, czy D2 dołączonej do Chipa i serio doceniam to narzędzie. Zresztą obecnie nie jest ważne dlaczego tak się stało, tylko trzeba patrzeć na stan obecny. Microsoft tez uśmiercił swojego Visual FoxPro, RAD zresztą. Zwyczajnie C# i Java mają wielką zaletę w postaci uniwersalności. Można napisać aplikację desktopową, mobilną backend do tej aplikacji, aplikację web za pomocą tych samych narzędzi. W niektórych przypadkach jest to droga przez mękę (np. Java i aplikacja desktopowa), ale Delphi jest naprawdę dobre tylko i wyłącznie w tej działce, która właściwie zeszła na margines. Moim zdaniem, upadek Delphi nastąpił dlatego, ze konkurencja zaczęła oferować zdecydowanie więcej.

Potem mieli prawie 15 lat przerwy w rozwoju gdy Delphi było pod skrzydłami CodeGear i zanim Embarcadero ogarnęło burdel, który został. W tym czasie wysypały się prawie wszystkie firmy co robiły fajne komponenty i faktycznie rozwijały ten produkt... Do tego wypuścili jeszcze po drodze niedokończone buble takie jak Kylix czy Delphi4PHP ( o zgrozo kiedyś to odpaliłem i próbowałem coś w tym zrobić ).

Ale ci dostawcy komponentów nie porzucili swojego biznesu, bo tak dobrze szedł.

Niestety Ci co w tym nieszczęśliwym czasie się z Delphi zetknęli mogli nabrać jedynie złych doświadczeń i zrazić się do całej platformy. Język stracił na popularności, nikt już nie chce pisać begin/end zamiast {/}. Niby jeszcze jest C++ Builder ale ciąży na nim to samo brzemię z przeszłości.

Builder ma dokładnie te same problemy - ani to C++, ani jakiś nowoczesny język programowania. Właściwie nadal to jest Delphi

Subiektywnie oceniając Delphi już nigdy nie zdobędzie takiej popularności jak miało ale może się ustawić jeszcze na długie lata na jakimś 1%-2,5% popularności gdzieś obok GO, Rust, Assemlera i tak sobie trwać z tymi kilkoma milionami użytkowników wiele lat. Raczej jeszcze szybko "nie zdechnie".

Znaczenie ma nie tylko udział w rynku, ale trend. Co do GO, nie mam zdania, Asm nie umrze, bo w niektórych przypadkach trzeba zejść do tego poziomu, chociażby po to, żeby napisać kompilator. Rust to coś co dopiero startuje i idzie na razie w górę. Zresztą język, który nie ma bagażu (C, C++), jest nowoczesny (w sensie składni np.), nie został zrobiony dla jaj i kompiluje się do kodu maszynowego ma szansę znaleźć sporą działkę.

0

Właśnie nie wiem o co chodzi z tym czasem kompilacji i małymi plikami. Z powodów oczywistych kompilacja w C# trwa krócej, a assembly wynikowe będzie mieć mniejszy rozmiar, niż .exe w Delphi z powodu takiego, że ładowane są dynamicznie składniki .net.

Argument typu "bo nie potrzeba .net" jest nieaktualny co najmniej od czasów Windows 7, bo .net jest teraz integralnym składnikiem Windows.

2

@piotrpo: albo Delphi zmieniło się tak bardzo, że niczym już nie przypomina D7
Tak bardzo się zmieniło i właściwie w niczym nie przypomina D7. Jednak wciąż można skompilować nim tak stary projekt po bardzo niewielkim refaktoringu kodu.

Można napisać aplikację desktopową, mobilną backend do tej aplikacji, aplikację web za pomocą tych samych narzędzi.
W Delphi dokładnie tak samo.
Więcej powiem DOKŁADNIE tą samą apkę odpalisz zarówno na androidzie jak i na Windows, OSX i android. Do tego jest to TEN SAM KOD bez zmiany nawet jednego znaczka.
Do tego możesz napisać back-end pod serwery z Windows alo Linux lub Wbudowany w Delphi. Możesz także napisać aplikację WEB z interfejsem graficznym projektowanym w RAD.

Delphi jest naprawdę dobre tylko i wyłącznie w tej działce, która właściwie zeszła na margines - czyli o której działce piszesz?
Ma crossplatform, ma kompilacjędo natynego kodu x86, ARM, Windows, OSX... ma możliwość pisania aplikacji serwerowych, ma możliwość pisania aplikacji WEB i to wszystko nie od wczoraj.
Delphi jest jednym z 3 języków/środowisk, które daje możliwość pisania wszystkich rodzajów aplikacji. Są C#, Java i Delphi... Więcej nie ma (prznajmniej w formie oficjalnego zastosowania ). Bo tak ogólnie to nawet w PHP można aplikacje GUI pisać.

screenshot-20210930204710.png

2
Ghost_ napisał(a):

Argument typu "bo nie potrzeba .net" jest nieaktualny co najmniej od czasów Windows 7, bo .net jest teraz integralnym składnikiem Windows.

Nie pisz takich rzeczy, bo UE zabroni, żeby była "uczciwa" konkurencja :]

2

Co do .NET to jeszcze na szybko wyklikałem w 3 miuty aplikację Web dla .NET... Akurat standalone Bo nie mam w domu serwera IIS ale jest i działa.
Dodam, że ja mam wersję "najbidniejszą" czyli Professional (czyli nie mogę np. kompilować pod Linuxa).

screenshot-20210930211844.png
screenshot-20210930212005.png
screenshot-20210930211913.png

2

Ok. Ale jak myślisz, czemu WebForms zostało wycofane? A takie właśnie podejście tu widzę. Tak, jak dziś się tego nie robi. Cały świat już wie, że "wyklikiwanie" aplikacji webowych to nie ma sensu.

Jak widzę chociażby Blazor i .net5 i to, to czuję się, jakbym przeniósł się w czasie o 20 lat do tyłu. A dopiero co mówiłeś, że Delphi już jest na czasie i to nie to co kiedyś

1
Ghost_ napisał(a):

Ok. Ale jak myślisz, czemu WebForms zostało wycofane? A takie właśnie podejście tu widzę. Tak, jak dziś się tego nie robi. Cały świat już wie, że "wyklikiwanie" aplikacji webowych to nie ma sensu.

Jak widzę chociażby Blazor i .net5 i to, to czuję się, jakbym przeniósł się w czasie o 20 lat do tyłu. A dopiero co mówiłeś, że Delphi już jest na czasie i to nie to co kiedyś

Temat jest o porównaniu C# do Delphi a nie o tym jak się dziś pisze aplikacje ani o tym jakie są Twoje odczucia:-)
W Delphi też możesz napisać WebService i dopiąć do niego front w React, VUE czy czystym JS. Możesz nawet "srać" czystym HTML i zrobić CGI jak niemal 40 lat temu.
Więcej powiem w wersji Enterprise dostaniesz licencję na ExtJS i nadal nie musisz się męczyć w Reactach i Vue.
Zatem nie ma takiego rodzaju i architektury aplikacji, który zrobisz w C# a nie zrobisz w Delphi.

Do tego wszystkiego masz świetne nowoczesne IDE,
Delphi włączasz i wszystko masz gotowe. Nie musisz niczego konfigurować - po prostej instalacji masz "WSZSTKO" co trzeba.
Niezależnie od tego czy piszesz aplikację WEB z formularzami webservice, mobilną, desktopową na Androida, czy IOS pod Windowsem itd..

Na pewno w szczegółach są różnice do C# ale w tym przypadku Delphi ma rzeczy, których nie ma C# i odwrotnie.

0

Delphi to nowoczesne IDE? No chyba żartujesz, braki biją po oczach. Tam nie ma nawet porządnego refactoringu, a podpowiadanie składni tak jak 20 lat temu działało jak kupa, tak działa jak kupa do dziś. Tak może powiedzieć tylko ktoś, kto jedyne porównanie ma z Delphi 7.

Do VS, czy Intelij lata świetlne jeszcze. Może nowoczesne w porównaniu z Delphi 6, tzn wygląda lepiej i to tyle.

0

Delphi to nowoczesne IDE? No chyba żartujesz, braki biją po oczach.

A na bazie której wersji Delphi wydajesz taką opinię? Na której ostatnio pracowałeś? Kiedy to było?

0

Było to 1.5 roku temu. Uważam, że Delphi odstaje znacznie od współczesnych dobrych IDE

Wydaje mi się, że pozwoli wyłania się powód, dlaczego ktoś używa tej technologii. To chyba jest po pierwsze kwestia własnej strefy komfortu i przyzwyczajeń - jeśli jest wybór, a inny powód to gdy trzeba przepisać lub rozwijać stary projekt, który był też w Delphi.

Obiektywnie - ani kwestie techniczne, ani tym bardziej licencyjne nie przemawiają za Delphi czy Lazarusem.

1

inny powód to gdy trzeba przepisać lub rozwijać stary projekt, który był też w Delphi

Tutaj pełna zgoda. Tez mam wrażenie, że głównie Delphi jest stosowane w celu zachowania kompatybilności. W sensie - masz działający od X lat projekt, masz to wdrożone u klientów i wszystko działa. Jakbyś pisał na nowo, to byś pewnie wybrał inną technologię, ale że ten projekt działa, przynosi jakieś wpływy, więc go utrzymujemy plus rozwijamy. Zamiana tego na inną technologię by kosztowało tyle co kilkuroczne zarobki przynoszone przez ten projekt, więc nie robisz rewolucji.

I jest taka sytuacja trochę matowa:

  • za dobrze to działa, żeby zaorać i ubić, masz klientów, kasa płynie
  • za mało to zarabia (a mało seksowna technologia jest zbyt mało uciążliwa i blokująca) żeby napisać całość od nowa w innym języku.

Rzeczywiście, bardzo mało nowych projektów powstaje w Delphi czy ogólnie Pascalach, głównie to jest legacy i utrzymaniówka.

1

Więc w zasadzie ten wózek jedzie już tylko siłą bezwładności. Dinozaury w końcu wymrą albo się doedukują, a stare projekty się zakończą.

3

@cerrato: "Zenek z kolegą zrobili apkę do zarządzania magazynek w firmie teścia sąsiada" tylko poważniejsze tematy.

Myślę, że Delphi wciąż jest rozwijane i ma się coraz lepiej właśnie dlatego, że to nie były tego typu aplikacje.
Na to, że tak jest wskazują ich klienci, którzy raczej do pisania systemów nie zatrudniają Zenka z kolegą...
Druga rzecz to dlaczego Borland porzucił rozwój Delphi... tu historia jest ciekawa bo nie chodziło o brak kasy a o to, że wisiały im jakieś tam kompilatory bo mieli inne plany.
Z takim wsparciem finansowym jak poniższe mogą trwać jeszcze wiele lat. Sam niedawno spotkałem młodego programistę (25-28 lat), który douczał się Delphi bo dostał w nim projekt do ogarnięcia. Chłopak był dobry więc w 3 tygodnie wdrożył się w temat... Niemal każdy kto ogarnia Javę czy C# szybko załapie także Delphi.

screenshot-20211001172916.png

1
Ghost_ napisał(a):

Argument typu "bo nie potrzeba .net" jest nieaktualny co najmniej od czasów Windows 7, bo .net jest teraz integralnym składnikiem Windows.

Już Windows XP Media Center Edition miał zintegrowaną jakąś wersję .neta, tylko właśnie – jaką? a jaka jest w Win7? jaka w Win10? a jakiej wersji chcesz używać?
Jeśli chcesz użyć jakiejś nowszej wersji (Core a nie Framework) to i tak się okaże że trzeba doinstalować, nawet na Win10.

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