z PHP do .NET

Wątek zablokowany 2021-01-17 19:44 przez Ktos.

sabrosa
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:6
0

Cześć,

Zakładałem już podobny wątek, jednak został przeniesiony do innego działu, bo doszło trochę niepotrzebnych kłótni, dlatego chciałbym spróbować jeszcze raz, a temat jest dla mnie bardzo ważny.

Mianowicie, sytuacja wygląda tak.

Sytuację opisałem dokładniej w tym wątku na innym forum:

https://maleofthefuture.com/d/72-czy-zmienic-prace

Pracuję już około 4-5 lat w PHP, jestem w tej chwili już na poziomie seniorskim, na co dzień w pracy wykorzystuję Symfony oraz trochę Laravela.

Praca całkowicie zdalna, zarobki niezłe. Jakiś czas temu jednak myślałem aby spróbować w .NET, złożyłem CV-kę, dali mi do napisania kod pokazujący, że generalnie ogarniam Entity Framework, ADO .NET, ASP .NET, Win formsy - bo trochę ogarniam, nie jakoś bardzo, ale miałem to na studiach, potem trochę w tym kodziłem, a poza tym wszystko i tak sprowadza się na mądrym rozdzielaniu kodu; wzorce projektowy, to co jest serwisem, to jest serwisem, to co encją to encją, to co kontrolerem to kontrolerem; mądre rozpropagowanie kodu, walidacje, itd.

No i choć w .NET nie siedziałem komercyjnie zbyt długo (raz tylko na 3-miesięcznym kontrakcie), to dzięki seniorskim praktykom kodowania się udało, dostałem pracę.
Mam jeszcze czas na decyzję i rezygnację.

Tam praca to głównie .NET, Winformsy, ale i .NET Core, czyli Winformsy w .NET Core, ASP .NET chyba nie używają.

Tu gdzie teraz pracuje, full praca zdalna, lekka już praca, lekka bo się na tym dobrze znam. Tam - jednak coś nowego, więc na pewno stres większy no i zawsze ryzyko, że się nie sprawdze.

Z drugiej strony jednak .NET bardziej przyszłościowy pod IoT oraz AI, nie wiadomo co będzie np. za 10 lat z PHP. W nowej pracy na początek 90% obecnych zarobków, dopiero gdzieś po roku by się wyrównało. No i brak 100% pracy zdalnej.

Jaki kierunek wybrać?

Zobacz pozostały 1 komentarz
CW
nie wiadomo co będzie np. za 10 lat z PHP a co ma być ? Za dużo napisano w php aby rynek programistów php nagle umarł.
Miang
w jaki sposób niby to .NET ma być bardziej przyszłościowe? to już nawet java(tfu) chyba bardziej
CW
wg mnie udział ASP.NET Core będzie rósł na rynku kosztem php i javy. Oczywiście to tylko moja prognoza, ale Core staje się naprawdę dobrym narzędzie, a znając determinację MS będzie jeszcze lepszym.
B2
to ze staje sie dobrym nie znaczy, ze nagle przejmie rynek. Ilosc ofert w C# i tak dalej odbiega od javy nie mowiac juz o stawkach.
CW
Oczywistym jest, że jeżeli coś jest dobre to nie musi zdominować rynku
Aventus
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
1

WinForms? Trochę słabo, szczególnie jeśli przechodzisz z webówki. Przejście na ASP Core i rozwój aplikacji webowych oczywiście bym rozumiał, ale tak to poza głębszym poznaniem nowej technologii (ekosystemu .Net) to trochę taki krok wstecz, chyba że Twoje dotychczasowe aplikacje w PHP to też nic ciekawego.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
sabrosa
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:6
0

@Aventus: W .NET Core piszą różne API pod systemy webowe i aplikacje mobilne. Winform i WPF, zapomniałem wspomnieć.

A czy to nie jest tak, że w sumie przy .NET Core to czy to WinForms czy ASP .NET to mała różnica, bo wszystko sprowadza się do tego samego: EF, ADO .NET, walidatory, framework, LINQ, itd?

edytowany 1x, ostatnio: sabrosa
Bonanzaa
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:168
1

Bierz C#, będziesz zadowolony :)

edytowany 1x, ostatnio: Bonanzaa
B2
dales mu juz spokoj :D?
Bonanzaa
zna seniorskie praktyki programowania więc nie ma to tamto
Aventus
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
0

@sabrosa: to zależy. W każdej technologii można trafić na minę, ale w WinForms prawdopodobieństwo się zwiększa. Jeśli jednak tak jak piszesz pracują nad różnymi systemami, a WinForms będzie tylko jedna z technologii w której będziesz pracował to może być to dobra zmiana.

Zakładając że nie rzucą Cię do utrzymywania jakiegoś starego systemu napisanego w WinForms, to możesz się wiele nauczyć. No i .Net Core to bardzo dobra technologia.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
sabrosa
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:6
1

@Aventus: Większość desktopów w .NET jest pisanych w WinForms, bo nie ma po co brać WPF, skoro WinForms wraz z dedykowanymi kontrolkami wyczerpuje temat.
Oprócz tego robią też w .NET Core. Pomiędzy .NET czy WinForms czy .NET Core z wykorzystaniem LINQ, ADO .NET, Entity Framework, itp. a ASP .NET w którym jest praktycznie wszystko to samo + część webowa, no to ta różnica myślę, nie jest tak duża.

Skok potem z .NET Winform + .NET Core, z opanowaniem walidacji, formularzy, LINQ, ADO .net i EF na ASP .NET to raczej żaden problem.

A .NET wydaje się bardziej przyszłościowe niż PHP pod tym względem, że jest bezpośrednio związany z możliwości programowania i podpinania się pod IoT oraz AI, dlatego kto wie czy za 10 lat PHP np. nie stanie się niemal zbędny, gdy AI oraz IoT będą liczyć się 10x bardziej niż dziś.

Zobacz pozostałe 2 komentarze
WeiXiao
@belzebub269: czemu uwazasz ze IoT i AI bedzie w c#? cóż to za pytanie? no bo jest na to market LOL - zresztą już coś jest: .NET IoT .NET ML.
B2
i co z tego ze jest? jak nigdzie c# nie jest wymieniany ani w przpadku ML ani IoT :)
WeiXiao
ehh, to tak jak się nie czyta. OP napisał .NET bardziej przyszłościowy pod IoT oraz AI zatem, według niego .NET jest BARDZIEJ przyszłościowy do IoT AI niż PHP.
B2
imho to jak przejscie z deszczu pod rynne :)
Aventus
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
1

To prawda, większość aplikacji dekstopowych w .Net stoi na WinForms, ale co to zmienia? I tak zazwyczaj ciekawsze są aplikacje webowe. I owszem- będziesz używał w większości tych samych frameworków, ale chodzi o dodatkowe wyzwania związane z tym co piszesz. Poza tym właśnie dla tego że większość aplikacji dekstopowych jest w WinForms, to większość z nich to stare systemy które nadal trzeba utrzymywać. I wiele z nich nigdy nie zostały "skażone" współczesnymi frameworkami, wszędzie są napchane managery (czyli klasy które wiedzą wszystko o wszystkim), nie ma ORMów, nie stosuje się dobrych praktyk czy wzorców itp.

Nie twierdzę że tak na pewno będzie i w Twoim przypadku, po prostu jeśli chodzi o doskonalenie swoich umiejętności .Net to lepiej iść w web development.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
Zobacz pozostałe 12 komentarzy
CW
albo jest trzecia opcja klient np. na projekt daje 1mln i to sprawa wykonawcy jakimi technologiami i jakimi kosztami osiągnie zakładany cel. Ważne, że nie może przekroczyć budżetu, a jednocześnie muszą być spełnione wszystkie założenia projektu co do wydajności sytemu itd.
Aventus
@cw: To nie jest trzecia opcja, to jest pierwsza opcja bo masz skończony budżet i końcowy produkt. Jeśli następnie trzeba by dodawać nowalą funkcjonalność to będą to dodatkowe koszta, a więc przechodzimy do opcji drugiej.
somekind
@Miang - "przerabiamy bo tak" to słaby argument, ktoś się na to zgodził?
Miang
@somekind: korpo, komuś się to opłaciło, prywatnie opłaciło
somekind
Rozumiem. Z drugiej strony, failed to enable constraints to wystarczający powód aby zamieć DataSety na cokolwiek. :P
sabrosa
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:6
0

Przede wszystkim interesuje mnie opinia ludzi z doświadczeniem minimum 2 lata, pracujących i zarabiających pieniądze komercyjnie w tej branży.

Gadki piwniczaków o nie stosowaniu ORM-ów jako wyższej formie wtajemniczenia absolutnie mnie nie interesują i nie mam czasu na głupie rozmowy.

Każdy kto pisał duże systemy wie co to dług technologiczny, wie, że tam gdzie system i pieniądze są duże nie ma miejsca na piwniczaków klepiących swoje magiczne funkcyjki do bazy, oklepujących swój własny ORM. Dlatego opinia dzieci, studentów i ludzi którzy nie mają min. 2 lat komercyjnego doświadczenia absolutnie mnie nie interesuje w tym temacie.

.NET to C#, .NET to C++, C++ to Machine Learning, od .NET C++ do .NET C# droga jak od sklepu Kazia do plebanii proboszcza, dlatego to, że IoT oraz AI będą powiązane z .NET i C# a nie PHP jest oczywiste, więc dziwaczne posty @belzebub269 deprecjonujące to, nic nie wnoszą.

Dlatego proszę o rady ludzi w branży z kilkuletnim doświadczeniem, myślących biznesowo i realnie - studenci i ludzie z "domowym" doświadczeniem - wolałbym aby opuścili temat.

Miang
"...grosz to pieniądz , pieniądz to forsa , forsa to grunt , grunt to ziemia , ziemia to matka , matka to anioł , anioł to stróż , stróż to dozorca , dozorca to gospodarz..."
Shalom
tam gdzie system i pieniądze są duże nie ma miejsca na piwniczaków klepiących swoje magiczne funkcyjki do bazy, oklepujących swój własny ORM xD szkoda ze ORMy to właśnie domena CRUDów i g**no-systemów. Tam gdzie faktycznie trzeba napisać system który cos robi, a jeszcze są pieniądze żeby zatrudnić programistów który coś umieją, ORMa nie zobaczysz.
Aventus
@Shalom: to akurat też bzdura, tak jak i bzdury autora wątku.
Shalom
@Aventus: 10 lat pracuje zawodowo jako programista i ORMy widziałem tylko w g**no-systemach. Może miałem niefart, ale wątpie ( ͡° ͜ʖ ͡°) ORM po prostu w niczym nie pomaga, a zwykle dodatkowo przeszkadza.
Aventus
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
1

Ale dostałeś rady więc o co chodzi? Jeśli chcesz nauczyć się nowych technologii to idź w to, ale miej na uwadze że WinForms często oznacza to co wymieniłem wcześniej więc podejmujesz lekkie ryzyko. To czy je akceptujesz czy nie to już Twoja sprawa. Natomiast jeśli masz wybór to idź w .Net ale web.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
Bonanzaa
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:168
0

@sabrosa: racja, *ebać ich!

B2
  • Rejestracja:około 6 lat
  • Ostatnio:2 dni
  • Postów:100
0

@sabrosa: od .NET C++ do .NET C# droga jak od sklepu Kazia do plebanii proboszcza.

Chyba Cie w tej drodze Bóg opuścił xDD Człowieku chyba kompletnie nie masz pojecia o ML czy IoT :)

edytowany 4x, ostatnio: belzebub269
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Wrocław
1

Jak już z PHP uciekają w WinFormsy, to znaczy, że 2020 się jeszcze nie skończył.


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
DC
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 lata
  • Postów:5
2
sabrosa napisał(a):

Przede wszystkim interesuje mnie opinia ludzi z doświadczeniem minimum 2 lata, pracujących i zarabiających pieniądze komercyjnie w tej branży.

Gadki piwniczaków o nie stosowaniu ORM-ów jako wyższej formie wtajemniczenia absolutnie mnie nie interesują i nie mam czasu na głupie rozmowy.

Każdy kto pisał duże systemy wie co to dług technologiczny, wie, że tam gdzie system i pieniądze są duże nie ma miejsca na piwniczaków klepiących swoje magiczne funkcyjki do bazy, oklepujących swój własny ORM. Dlatego opinia dzieci, studentów i ludzi którzy nie mają min. 2 lat komercyjnego doświadczenia absolutnie mnie nie interesuje w tym temacie.

.NET to C#, .NET to C++, C++ to Machine Learning, od .NET C++ do .NET C# droga jak od sklepu Kazia do plebanii proboszcza, dlatego to, że IoT oraz AI będą powiązane z .NET i C# a nie PHP jest oczywiste, więc dziwaczne posty @belzebub269 deprecjonujące to, nic nie wnoszą.

Dlatego proszę o rady ludzi w branży z kilkuletnim doświadczeniem, myślących biznesowo i realnie - studenci i ludzie z "domowym" doświadczeniem - wolałbym aby opuścili temat.

Kolega ma 4-5 lat doświadczenia ale poziomem (podejściem do tematu) dalej junior. Miałem okazję pracować w kilku projektach o zasięgu globalnym i faktem jest, że tam gdzie wymagana jest wysoka wydajność i szybkość przetwarzania dużej ilości danych czysty SQL bije na głowę ORMy o lata świetlne - BEZDYSKUSYJNIE. Nie jestem przeciwnikiem ORMów ale należy je używać z głową i ze świadomością na jakie kompromisy się zgadzamy (np. brak możliwości optymalizowania zapytań po swojemu). Kiedyś w jednym zespole miałem do czynienia z ludzmi, których określiłbym jako "wyznawców kościoła ORM ponad wszystko", oczywiście projekt skończył się rozczarowaniem na sam koniec w stylu "dlaczego apka tak wolno działa? :(".

edytowany 1x, ostatnio: don_cicio
HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 16 godzin
  • Postów:1006
7

Wypowiadałem się już w poprzednim wątku, ale nie zdążyłem odpowiedzieć na pytania zanim sobie z @Bonanzaa zaczęliście wymieniać uprzejmości ;-)

Tak więc ja zaczynałem pracę w PHP (jestem z odzysku, co jest ważne w mojej historii) miałem plan dość prosty - 2-3 lata popracować w PHP bo tą technologię znałem i potem migrować na Javę lub C#. Rynek znałem głównie z opowieści na 4programmers, więc myślałem, że w PHP robi się proste rzeczy za małą kasę. W mojej pierwszej pracy była to tylko połowicznie prawda - robiłem trochę bardziej skomplikowane rzeczy, ale za małą kasę ;-)

Po 1-1,5 roku wiedziałem, że już technologii nie będę zmieniał. Okazało się, że moje zarobki bardzo szybko rosną, praca jest ciekawa i po prostu szkoda zachodu, ale nadal jest to decyzja dosyć indywidualna. Czynniki, które ja rozważałem

  • przyszłość PHP - wg mnie nie masz racji, PHP nadal ma przyszłość. Oczywiście duża część rynku to jakieś Wordpressy i inne guano, ale sam PHP rozwija się w kierunku "enterprise dla ubogich" i w tym segmencie jest ogrom pracy. Ten segment chyba nigdy nie zniknie i zawsze będą potrzebne aplikacje wspierające biznes szyte na miarę. PHP konkuruje tu z Javą czy .net i w wielu zastosowaniach wygrywa choćby ze względów kosztowych czy time-to-market. Od wersji 7 PHP ma wszystko czego tu potrzeba i biznes to widzi - oczywiście w pewnych zastosowaniach nigdy nie wygryzie np. Javy, ale czy musi?

  • scenariusz negatywny - PHP powoli idzie do lamusa. No właśnie czy to jest scenariusz negatywny? Jest kupa softu do utrzymania, ludzie się nawet dzisiaj nie garną do PHP, więc jak nie będzie popularny to tym bardziej nie będą, a ktoś to będzie musiał utrzymać i rozwijać. Obecnie najlepiej płatne języki to między innym Cobol i Ruby. Mi by nawet odpowiadało, że gdy będę miał te 55-60 lat i dalej będę chciał programować to będzie taka cicha przystań z dobrą kasą i bez konieczności gonienia króliczka ;-)

  • kasa - po pierwsze w PHP są bardzo dobre zarobki. Oczywiście średnia jest kiepska bo zaniżają ją jakieś agencje interaktywne i magicy co nawet z git nie potrafią korzystać, ale jak już dostaniesz się do normalnej firmy to senior PHP zarabia podobnie co senior Javy czy C#. Jedynie co to mniej jest może ofert 20k+ ale w innych językach też konkurencja o takie oferty jest znacznie większa niż w PHP

  • kasa po raz drugi - tym razem indywidualnie, mam zestaw wiedzy domenowej, który zgrywa się idealnie z PHP + znam ludzi, którzy chętnie z tej wiedzy korzystają, tak więc nawet nie będąc takim prawdziwym seniorem spokojnie osiągam zarobki w kategoriach doświadczonego architekta. Zmieniając technologię byłbym pewnie z 50% w plecy na początku przez brak znajomości /wyrobionej marki.

  • w PHP mam ostatnio sporą styczność z DevOps i bardzo mi się to podoba. W korpo od każdego trybika jest inny operator i jest spora specjalizacjia. W PHP projekty są mniejsze przez co można liznąć więcej ciekawych tematów. Mam szczęście do ciekawych projektów, gdzie trzeba wiele "kombinować", lepić różnych rozwiązań z klocków i mi to bardzo odpowiada.

  • małą konkurencja - nie czarujmy się większość programistów jest słaba w porównaniu z Java/C# - próg wejścia jest mniejszy, co zdolniejsi często uciekają do innych technologii. Nie mam złudzeń, że z moją wiedzą nie byłbym w Javie nawet dobry middem, a w PHP mi ciągle wmawiają, że jestem seniorem mimo, że nie jestem. Dla kogoś, kto chce się rozwijać w ścieżce technicznej to może być minus - dla mnie jest to w sumie plus, że nie muszę cały czas konkurować z młodymi, zdolnymi. Mam teorię, że od wiedzy technicznej znacznie ważniejsze jest zrozumienie biznesu i umiejętność rozwiązywania problemów. W PHP właśnie to mogę robić.

  • lubię PHP - tak wiem to dziwne, ale ja lubię ten język. Oczywiście widzę jego bolączki, ale jako ekosystem idealnie pozwala rozwiązywać problemy z którymi się spotykam i wbrew obiegowej opinii pozwala pisać dobry kod. Ma większość rzeczy, które można wymagać od języka skryptowego i na wielu polach dystansuje konkurencję.

Co by mnie skusiło do zmiany technologii:

  • musiałbym się wkręcić w coś co robi się w innym języku i nie oznaczałoby to dla mnie ogromnej obniżki wynagrodzenia.

  • zmiana decyzji i chęć rozwoju w 100% w ścieżce technologicznej - inne języki mają lepszych programistów i większe wyzwania niż apki biznesowe, więc na pewno jako całokształt można zostać tam lepszym programistą niż w PHP. Oczywiście tutaj warunek konieczny to nie trafić do jakiegoś korpo klepiącego crudy, bo wtedy to jednak już lepiej robić fajne projekty w PHP.

  • gdybym był crud developerem w PHP to pewnie dążyłbym do zostania crud developerem w jakimś corpo (a więc Java/C#) bo przynajmniej kasa by była lepsza.

  • gdybym miał studia z czegoś związanego z IT i zaczynał dopiero karierę to wybierałbym język, który daje wiele ścieżek rozwoju, bo PHP to wiadomo tylko webdev. Mi brakuje wiedzy aby robić coś bardziej ambitnego niż webdev.

Aventus
Łapka w górę za wartościowy post. Od siebie dodam że z PHP miałem do czynienia w projekcie na studia kilka lat temu, ale szybko zrozumiałem dla czego ma opinię języka w którym jest dużo spaghetti kodu itp. Faktycznie bardzo łatwo w nim o złe praktyki, szczególnie jeśli ktoś dopiero zaczyna a język ten- jak sam wspomniałeś- ma niski próg wejścia.
Miang
sam język jest super problem jest że w wielu firma jest używany tylko jako dostarczyciel danych do js, jeśli ktoś zna tylko taki php to tak naprawdę go nie zna
HA
@Aventus: tak nawet dzisiaj po zmianach w PHP można pisać spaghetti, a mechanizmy które nakładają kaganiec są opcjonalne, wiec jak sobie ich nie narzucisz to jest jak było. Dlatego też do dziś w PHP są 2 światy i gdy my sobie tu gadamy, to jakiś gość w agnacji interaktywnej właśnie pisze kod który zdeployuje używając FTP, a jego szef mu sapie do ucha dlaczego kupił za drogi hosting.
serek
@hadwao: z tą kasą to bym tak nie przesadzał. Fakt, jeśli ktoś jest bardzo dobry w te klocki, plus ma trochę szczęścia to pewnie uda mu się jakoś ugrać kasę taką jak ma np. senior w Javie. Ale to są raczej dość rzadkie przypadki, w 99% firm nikt nie zapłaci gościowi z PHP tyle co komuś z Javy. Chyba że szukać jakiegoś zagranicznego klienta, to szanse będą większe.
HA
@serek: problem jest taki, że senior Javy musi być na znacznie wyższym poziomie niż senior PHP. Jeśli osoby takie mają porównywalną wiedzę to dostaną podobne pieniądze (choć faktycznie z delikatnym wskazaniem na Jave/C#). Osobiście nie znam żadnej osoby z wiedzą (nie stażem) seniorską, która w PHP zarabia poniżej 15k. Mam taką teorię, że w PHP szybciej można dostać 15k niż w Javie czy C# - faktycznie za to dość trudno o oferty 20k+ i tu Java i C# wygrywają. W PHP też trudniej zostać seniorem bo nie ma od kogo się uczyć.
sabrosa
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:6
0

@don_cicio: Ależ jak najbardziej tam, gdzie wydajność jest wszystkim, ORM-y sa przeszkodzą. Jednak są to naprawdę hardcorowe przypadki, pewnie gdzieś w NASA i w zaawansowanych aplikacjach obliczeniowych bawią się w czysty SQL, tak samo jak bawią się w czysty PHP [CIACH!] w widok, zamiast niepotrzebne kompilery z smartów/blejdów/twigów, na HTML - bo przecież kompilery też pracują w locie i też zwalniają proces requesta.
TAK! Masz rację! Tylko w jakim to procencie aplikacji? to nie jest nawet promil.
Nie rozmawiamy więc o tajemnym promilu wszystkich aplikacji, przeznaczonym specjalnie dla hardcorowych piwniczaków, rozmawiamy w ogólności o typowym biznesie w IT, robieniu pieniędzy, bo nie wykonuję tego zawodu na darmo, mój CZAS to WALUTA której NIKT MI NIE WRÓCI.

Dlatego własnie, że mój CZAS jest dla mnie cenny, to nie bawię się w pisywanie swoich oklepywaczy SQL-a, bo to generalnie w 99,5% przypadków STRATA CZASU.

Co do tych lat świetlnych to gadasz głupoty moim zdaniem; jak w Laravelu używasz whereHasów które są tak naprawdę czasożernymi where existami, to TAK - trwa to dużo dłużej, jednak jak w ORM-ie używasz dobrze napisanych joinów, czyli generalnie wiesz co robisz - to te różnice między czystym SQL a ORM nie sa duże.

@hadwao

Dzięki za rozsądny wpis, widać, że mam do czynienia w końcu z kimś doświadczeniem, a nie studenciakiem który się na 4programmersach uczy "ploglamowania" i naczytał się głupot piwniczaków.

Ja w PHP klepię duże rzeczy, w tej chwili pracuję w dużej firmie, używamy głównie Symfony, PostgreSQL, sporo REST API, SOAP-u, serwisy usługowe; praca fajna i mi się to podoba, jednak gdybym robił dokładnie to samo ale w bardziej przyszłościowym .NET - (a nawet Winformsy czy też .NET Core WinForm, bo Winformsy klepie się też na .NET Core oparte o nowoczesny Entity Framework, ADO .NET, LINQ, itd. niewiele się różnią np. od ASP .NET), to byłoby lepiej.

PHP nie umiera - zgadzam się, jednak skąd wiesz co będzie za 10 lat? .NET najprawdopodobniej zachowa mocną pozycję, ale jak widzisz odnalezienie się PHP-a w świecie IoT, AI? No średnio. Python wyczerpuje wszystko, co robi PHP, ale i daje z siebie dużo więcej, bo działa na różnych platformach, można w nim klepać przeróżne rzeczy, nie tylko WWW.

Co do sympatii do PHP - ja też bardzo lubię PHP i to nie o sympatię się tu rozchodzi, a o to co powyżej.
Sam PHP jest moją ukochana technologią, to co w nim lubię najbardziej to wolność - wolność od kombajnów i ciężkiego środowiska jak w .NET, wolność od standardów - w PHP możesz napisać byle g**no które ZADZIAŁA, oraz pisać piękny kod. PHP daje wolność: możesz załatać dziurę na stronie [CIACH!] żywy PHP w blejda, a możesz poprawić sprawę bardziej na poważnie.
Jest pełny freestyle, dlatego tak lubię tę technologię. .NET pod tym względem jest bardzo ograniczający, ktoś kiedyś powiedział mi, że .NET to takie trzymanie programisty w złotej klatce. Nie można było tego lepiej ująć.

To, że w PHP można napisać spaghetti code oraz piękny kod jest właśnie piękne - WOLNOŚĆ. Brak ograniczeń, brak przymusowego kagańca jak w .NET czy Java.

Jednak to, co mnie przekonuje do .NET to rozwijający się .NET Core, przyszłość za 10 lat, oraz to, że na pewnym etapie to wszystko jest podobne: ORM, walidacje, formularze, czasem jakiś webservice - czym to się niby różni taki Symfony pisany na wzór Spinga Javy, od takiego właśnie Springa czy ASP .NET? To naprawdę, wszystko jest w sumie tym samym.

No i jednak .NET wydaje się bardziej ambitny na przyszłość.

Co do Winformsów to przecież prawie każdy desktop w .NET pisze się w Winformsach, także dziś - WPF to tylko dodatek, mało firm z tego korzysta, bo WinForms jest szybszy i ma dostęp do wielu kontrolek, jak np. DevExpress. Jeśli więc ktoś się śmieje z Winformsów jako coś przestarzałego to wiem jedno: STUDENT ALERT. Czyli ktoś bez komercyjnego doświadczenia, kto mówi z tego, co wyczytał na innym forum, na którym napisał inny student, który coś wyczytał na innym forum, na którym...

edytowany 1x, ostatnio: somekind
Miang
kto się chcę poczuć młodszy zapraszam do tego wątku, będzie nazwany studenciakiem (co prawda mój kuzyn starszy ode mnie 20 lat właśnie drugie studia zrobił) ;)
DC
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 lata
  • Postów:5
2
sabrosa napisał(a):

@don_cicio: Ależ jak najbardziej tam, gdzie wydajność jest wszystkim, ORM-y sa przeszkodzą. Jednak są to naprawdę hardcorowe przypadki, pewnie gdzieś w NASA i w zaawansowanych aplikacjach obliczeniowych bawią się w czysty SQL, tak samo jak bawią się w czysty PHP [CIACH!] w widok, zamiast niepotrzebne kompilery z smartów/blejdów/twigów, na HTML - bo przecież kompilery też pracują w locie i też zwalniają proces requesta.

TAK! Masz rację! Tylko w jakim to procencie aplikacji? to nie jest nawet promil.
Nie rozmawiamy więc o tajemnym promilu wszystkich aplikacji, przeznaczonym specjalnie dla hardcorowych piwniczaków, rozmawiamy w ogólności o typowym biznesie w IT, robieniu pieniędzy, bo nie wykonuję tego zawodu na darmo, mój CZAS to WALUTA której NIKT MI NIE WRÓCI.

Dlatego własnie, że mój CZAS jest dla mnie cenny, to nie bawię się w pisywanie swoich oklepywaczy SQL-a, bo to generalnie w 99,5% przypadków STRATA CZASU.

Co do tych lat świetlnych to gadasz głupoty moim zdaniem; jak w Laravelu używasz whereHasów które są tak naprawdę czasożernymi where existami, to TAK - trwa to dużo dłużej, jednak jak w ORM-ie używasz dobrze napisanych joinów, czyli generalnie wiesz co robisz - to te różnice między czystym SQL a ORM nie sa duże.

Generalnie nie zamierzam się wdawać w czasochłonne dywagacje na ten temat (bo też szanuję swoją walutę :) ) gdyż to kwestia doświadczenia lub jego braku no ale skoro nawoływałeś do dyskusji tylko doświadczonych programistów no to jestem. A więc po kolei:

1 - "Tylko w jakim to procencie aplikacji? to nie jest nawet promil." - to prawda, że zdecydowana większość aplikacji (zwłaszcza na polskim rynku) jeśli chodzi o skalę to zwykłe CRUDy dla warzywniaka pani Basi, które działają na 4 tabelach i 2 formularzach na krzyż. Do takich zastosowań ORMy sprawdzają się wyśmienicie - pełna zgoda. Powiem więcej nawet. Programista klepiący takie aplikacje nie musi nawet umieć/rozumieć działania "pod maską" SQLa.

2 - "Co do tych lat świetlnych to gadasz głupoty moim zdaniem ... to te różnice między czystym SQL a ORM nie sa duże" - jakieś obiektywne benchmarki/badania? Jeśli nie to polecam eksperyment w zaciszu własnego domu :) . Stwórz sobie 3 testowe tabele, po 4-5 kolumn każda z 1 miliardem rekordów w każdej. Wykonaj 2 zapytania z joinami do tych tabel gdzie jedno będzie zapytaniem wygenerowanym przez ORMa a drugie czystym SQLem w procedurze składowanej i na sam koniec porównaj czasy zwrócenia danych obu zapytań.

edytowany 1x, ostatnio: somekind
Aventus
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
2

Co do Winformsów to przecież prawie każdy desktop w .NET pisze się w Winformsach, także dziś - WPF to tylko dodatek, mało firm z tego korzysta, bo WinForms jest szybszy i ma dostęp do wielu kontrolek, jak np. DevExpress. Jeśli więc ktoś się śmieje z Winformsów jako coś przestarzałego to wiem jedno: STUDENT ALERT. Czyli ktoś bez komercyjnego doświadczenia, kto mówi z tego, co wyczytał na innym forum, na którym napisał inny student, który coś wyczytał na innym forum, na którym...

Jedyna osobą wypowiadającą się tutaj w postach na temat WinForms byłem ja, więc zakładam że odnosisz się do mnie tą wypowiedzią. Od razu mogę powiedzieć że bardziej się pomylić nie mogłeś, bo swoje doświadczenie już mam, a i zawodową karierę programisty .Net zaczynałem właśnie od WinForms. Także możesz się schować z komentarzami na temat studentów (notabene swoimi haotycznymi i dosyć prymitywnymi wypowiedziami sam brzmisz jak jakiś student albo jakbyś dopiero co z siłki wyszedł i jeszcze Ci metanabol w mózgu buzował). Kłania się czytanie ze zrozumieniem też, bo wyraźnie pisałem że WinForms to większa szansa wejścia na minę i chyba nawet podkreśliłem że nie zawsze tak jest oczywiście.

Natomiast Twój opis świata WinForms to wyimaginowana wizja tego że zawsze korzystają z najnowszych technologii, co jest tym bardziej absurdalne że WinForms ma wsparcie .Net Core dopiero od niedawna. Więc większość aplikacji WinForms to będą stare kobyły. A co do tego że większość aplikacji desktop jest pisana w WinForms- o czym ma świadczyć ten argument? Większość rdzeni systemów bankowych stoi na Cobolu, i co w związku z tym?


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
sabrosa
WinForms jest wspierany CAŁY CZAS, wchodzi cały czas na kolejne wersje .NET i wszystkie nowe DESKTOPY także klepie się głównie w WinFormsach. Pokazałeś swoim wpisem, że nie masz pojęcia o czym mówisz. Nawet dziś, WPF używa się rzadko, dziś, tak samo jak w przeszłości, WinFormsy to główny wzorzec do tworzenia desktopów w .NET, tym bardziej teraz przy .NET Core więc nawet nie wiem o czym Ty bajdurzysz o WinFormach jako o starych kobyłach. Jakie stare kobyły jak to PODSTAWOWA technologia do tworzenia desktopów w .NET? Podstawowa, primary, tego się prawie zawsze używa!
B2
@sabrosa: skoro tak chwalisz .NET to chyba decyzje masz juz podjeta? temat to zamkniecia.
sabrosa
Nie mam podjętej, ale wciąż czekam na merytoryczne wpisy jak u @hadwao - ludzi którzy siedzą w tej branży KOMERCYJNIE kilka lat, a nie studentów, fantastów i innych teoretyków od klepania własnego ORM w piwnicy, fuck, O Christ..
sabrosa
Dlatego jak widzę, że ktoś mi tu pindzieli o pisaniu własnych funkcji do SQL zamiast używać ORM jak @Miang , to wiem, że na 99% jakiś student czy inny piwniczak/fantasta. Ja pytam ludzi którzy z tej branży chleb na co dzień jedzą, a często też ich dzieci - zawodowców.
Aventus
Właśnie udowodniłeś że faktycznie nie potrafisz czytać ze zrozumieniem, piękne samozaoranie :D koniec tematu z mojej strony.
SW
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:250
1

Są microORMy typu Dapper czy RepoDb. Żadnych klas pośrednich, śledzenia obiektów, dawnych EMDX czy fikołków z LINQ, żeby zrobić Group By czy Partiton By. I tak, SQL jest w kodzie, i nie, nie zawsze wygenerowany JOIN (jak będzie to JOIN, a nie jakiś CROSS APPLY) będzie lepszy od tego co można w czystym SQL. Oczywiście wszystko jest dla ludzi, ale często łatwiej i szybciej użyć microORMa niż kopać się z koniem.

kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 minuty
  • Postów:924
2
sabrosa napisał(a):

Co do Winformsów to przecież prawie każdy desktop w .NET pisze się w Winformsach, także dziś - WPF to tylko dodatek, mało firm z tego korzysta, bo WinForms jest szybszy i ma dostęp do wielu kontrolek, jak np. DevExpress. Jeśli więc ktoś się śmieje z Winformsów jako coś przestarzałego to wiem jedno: STUDENT ALERT. Czyli ktoś bez komercyjnego doświadczenia, kto mówi z tego, co wyczytał na innym forum, na którym napisał inny student, który coś wyczytał na innym forum, na którym...

Cytując klasyka: "Co ty [CIACH!] człowieku?"

Malo firm korzysta z WPF? :D
W czym niby WinForms jest szybszy od WPF? Raczej jest odwrotnie.
DevExpress tez wydaje swoje kontrolki na WPF.

A tych bredni ze wszyscy korzystają z ORM'ow i nikt nie pisze gołych SQL'i to nawet sie nie chce komentować :)


Keep calm and blame frontend.
Tell your cat I said pspsps.
edytowany 1x, ostatnio: somekind
sabrosa
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:6
0

@kzkzg: Tak, mało firm korzysta z WPF, dlatego [CIACH!] to Ty.

Mam znajomych w .NET i wiem jak sprawa wygląda. Główną technologią do desktopów w .NET są WinFormsy a nie żaden WPF.

Jest szybszy w tworzeniu softu - pisze się szybciej, produktywniej i jest na niego więcej kontrolek.

Co do tych "bredni" no to znów pokazałeś, że najpewniej mamy do czynienia z [CIACH!] - studenciną czy piwniczakiem który [CIACH!] głupoty bo nie zna rynku komercyjnego z DOŚWIADCZENIA a nie [CIACH!] na forach.

Ja znam z DOŚWIADCZENIA i przypadki gołego SQL zamiast ORM to jest [CIACH!] PROMIL. PROMIL! Dlatego nie [CIACH!] studenciarskich głupot.

edytowany 6x, ostatnio: Shalom
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Wrocław
0

Tak se czytam o tej popularności WinFormsów, wspaniałości Entity Frameworka, ograniczającej platformie i złotej klatce, w której programiści siedzą, że czuję się przekonany i chyba sam przejdę na ten .NET.


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
edytowany 1x, ostatnio: somekind
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)